1) QDomDocument類(文檔節點),<QDomDocument>表示XML檔案,是整個檔案樹的根節點,提供整個文檔的訪問。由於元素、文本節點、注釋、處理指示都不能存在於外部檔案,因此這些內容都必須在檔案內被建立,並用ownerDocument()關聯建立。
讀入文檔setContent(QFile *file),若讀取失敗返回0,成功返回1
利用creatElement()createTextNode(), createComment(), createCDATASection(), createProcessingInstruction(), createAttribute() and createEntityReference()等函數可以建立元素、文本節點、注釋、處理指示等文檔資料。
將dom寫到xml檔案中,save(QTextStream &str,int indent)
2)QDomElement類(元素節點),<QDomElement>代表DOM樹的一個元素,從QDomNode繼承。
有一個標籤名(tagName())並可以有多個或沒有屬性與之對應,標籤名可以用setTagName()修改;
3)QDomNode類(節點類),<QDomNode>,是Dom樹中所有節點的基類。
有兩個公有成員:分別用於編碼格式與節點類型
EncodingPolicy{EncodingFromDocument,EncodingFromTextStream}從文檔或text流提取編碼
NodeType{ ElementNode, AttributeNode, TextNode, CDATASectionNode, ..., CharacterDataNode}代表不同的節點類型:元素節點、屬性節點、文本節點、注釋節點、文檔節點.....
判斷節點類型可以利用Attr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() and isComment().來判斷
同時一個QDomNode類可以轉換為元素節點、屬性節點、文本節點、注釋節點、文檔節點等具體的,利用 toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(),......
QDomNode可以建立一個NULL的節點,且該節點不能被修改,可以用isNull()判斷。
節點的插入、替換和刪除操作可以用 insertBefore(), insertAfter() or appendChild()和replaceChild() removeChild()
節點的遍曆:firstChild()擷取第一個節點,nextSibling()用於遍曆,還有lastChild() previousSibling() parentNode()用於找到最後一個子節點、前一個兄弟節點、父節點
子節點:是否存在hasChildNodes(),擷取子節點列表childNodes()
節點的名字、值和屬性可以nodeType() nodeValue() nodeName()獲得,可以利用setNodeValue()修改節點的值
文檔節點通過ownerDocument()返回獲得
4)QDomAttr類(屬性節點類) <QDomAttr>,用於表示QDomElement的一個屬性。
QDomAttr通過name() value()返回屬性的名字和值,setValue設定值,ownerElement()返回該屬性屬於哪個元素節點