日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt学习:QDomDocument

發布時間:2023/12/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt学习:QDomDocument 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
QDomDocument類代表了一個XML文件 QDomDocument類代表整個的XML文件。概念上講:它是文檔樹的根節點,并提供了文檔數據的基本訪問方法。 由于元素、文本節點、注釋、指令執行等等不可能脫離一個文檔的上下文,所以文檔類也包含了需要用來創建這些對象的工廠方法。被創建的節點對象有一個ownerDocument()函數,它將對象與對象常見的文檔上下文環境關聯起來。DOM類中最常使用的是QDomNode、QDomDocument、QDomElement和QDomText。 解析后的XML文件在內部是通過一個對象樹來表示的,對象樹可以使用各種QDom類進行訪問。所有的QDom類只引用內部樹上的對象。一旦最后一個DOM樹的QDom對象和QDocument本身被刪除掉時,DOM樹上的所有內部對象會被刪除掉。 元素、文本節點等的創建是通過使用類提供的各種工廠方法完成的。使用QDom類的缺省構造函數只會生成空的對象,這些空的對象不能操作,也不能哈如到文檔中。 QDomDocument類有一些創建文檔數據的函數,例如:createElement(),createTextNode(),createComment(),createCDATASection(), createProcessingInstruction(),createAttribute(),和createEntityReference().其中一些函數含有支持名字空間的版本,例如:createElementNS()和createAttributeNS().函數createDocumentFragment()用來持有文檔的部分內容,這對于處理復雜文檔很有用。 使用setContent設置文檔的全部內容。該函數解析傳入的XML文檔字符串并創建代表文檔的DOM樹。根節點可以使用documentElement()得到。文檔的文本呈現可以使用toString()函數得到。 可以使用importNode()將其它文檔的節點插入到當前文檔中。 你可以使用elementsByTagName()和elementsByTagNameNS()來獲取所有元素中含有特定標簽的列表。 QDom類的典型使用方法如下:
QDomDocument doc("mydocument"); QFile file("mydocument.xml"); if (!file.open(QIODevice::ReadOnly)) return; if (!doc.setContent(&file)) {
? ? file.close(); return; } file.close();
//打印出最外層元素所有直接的子節點的元素名稱 QDomElement docElem = doc.documentElement(); QDomNode n = docElem.firstChild(); while (!n.isNull()) { QDomElement e = n.toElement(); //將節點轉換為元素 if (!e.isNull()) { cout<<qPrintable(e.tagName())<<endl; } n = n.nextSibling(); }
// 在文檔的結尾添加一個新的元素 QDomElement elem = doc.createElement("img"); elem.setAttribute("src", "myimage.png"); docElem.appendChild(elem);
一旦doc和elem出了范圍,整個的代表XML文檔的內部樹都會刪除掉。
使用DOM代碼創建一個文檔如下: QDocument doc("MyML"); QDomElement root = doc.createElement("MyML"); doc.appendChild(root);
QDomElement tag = doc.createElement("Greeting"); root.appendChild(tag);
QDomText t = doc.createTextNode("Hello World"); tag.appendChild(t);
QString xml = doc.toString();

總結

以上是生活随笔為你收集整理的Qt学习:QDomDocument的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。