1、tinyxml
引用網上的原話:tinyxml是目前非常流行的一款基於dom模型的xml解析器,簡單易用且小巧 玲瓏,非常適合儲存簡單資料,配置檔案,物件序列化等資料量不是很大的操作。支援對xml的讀取和修改,不直接支援xpath,需要借助另乙個相關的類庫tinyxpath才可以支援xpath
。tinyxml原始碼是使用c++語言編寫的,這對於c++應用來說是很好的xml操作工具了。tinyxml附帶的文件中給出了它的類組織形式:
tixmldocument : xml文件類,它一般用於指示乙個文件物件;
tixmldeclaration: xml標識類,也就是xml檔案第一行中標註的相關資訊;
tixmlelement: xml節點類,這個類用來表示乙個節點;
tixmltext: xml節點類的文字資訊類,標註了xml節點類的文字資訊;
tixmlcomment: xml的注釋資訊類,用來標識xml文件類的注釋資訊;
上述的這些類全部組織在如下的幾個檔案中,在使用這個小巧的工具的時候只需要將這4個.cpp檔案和2個.h新增到工程中,非常的方便。
xml的檔案結構一般都如下面這段內容所示,第一行表明的是xml的檔案版本,編碼方式等重要資訊。在我們自己寫xml的時候可以不寫著一行,但是為了通用性,以及後續的可修改性,最好要加上這些必要的資訊,畢竟有些xml操作工具對這些是有嚴格限定的。
abc 這一行資訊中<>標記的是乙個xml的結點,結點的名稱就是在<>中的內容,abc就是這個結點的乙個屬性了。xml的詳細檔案結構可以看xml的檔案結構說明
。
建立乙個工程,然後使用上面介紹過的相關類來建立乙個xml檔案,並且寫入相關資訊到xml文件中。<?xml version="1.0" encoding="utf-8" ?>
sunsusn
22.5
執行程式就可以在c盤根目錄下找到那個命名為test.xml的xml檔案了。使用記事本或者類似的文字工具就可以檢視檔案中的內容,如果寫入成果文字的內容應該是和上面說給的一段xml內容一致了。#include #include #include "xml/tinyxml.h"
#include "xml/tinystr.h"
using namespace std;
int main()
3、使用tinyxml讀xml檔案
有了上面寫xml的經驗,讀xml檔案相比更加的容易了。讀xml檔案相比寫xml檔案可能用的場合要更多一些。使用tinyxml讀xml可以分為以下幾個步驟:
1、建立乙個tixmldocument文件物件;
2、載入xml檔案;
3、獲取檔案根節點;
4、從根節點開始遍歷讀取。
直接使用乙個比較複雜的xml檔案來作為案例:
xml檔案比較長不直接貼出,先從結構上來分析一下要讀的這個xml檔案。第一行是xml標識資訊。然後上圖中表紅框的一對節點就是根節點了,讀取的時候找到根節點,然後再去讀取根節點下的子節點,依次進行下去就可以讀取到我們想要的資訊了。這裡我想要的資訊時存在於readingsession節點下的。
readingseassion節點下的內容前部分可以預覽一下,檔案太長不便於貼出。
下面就可以寫**了,按照我們之前分析的讀取順序:3.12
302474490
nodule 00151
6333
555 -93.250000
1.3.6.1.4.1.14519.5.2.1.6279.6001.190268484503749714760575440541
true
311226
310225 309
226
上述**來自於專案中的一小段原始碼,中間的有些量都是其它地方定義的,不必糾結於此,重要的是這個讀取的流程。tixmldocument doc(pfile); //pfile表示檔案的路徑 //建立讀取xml臨時物件
bool loadok = doc.loadfile(); //載入xml檔案
if (!loadok) //載入失敗彈出提示並退出該函式
tixmlelement* root = doc.rootelement(); //xml的根節點
for (tixmlnode* specialistitem = root->firstchild("readingsession"); //對readingsession節點進行迴圈
specialistitem; specialistitem = specialistitem->nextsibling("readingsession"))
m_vsingle.push_back(single);
roi = roi->nextsibling("roi");
}unblindedreadnodule = unblindedreadnodule->nextsibling("unblindedreadnodule");
}
TinyXML讀寫XML檔案
最近要用c 來讀寫配置檔案,和自己的需要記錄的資料,這這東西比存在資料庫裡面好用,但是唯一不爽的一點是可維護性太差,修改欄位後太難處理了,沒有php拿到引數方便,可以直接以字串來索引查詢引數的值,只能以相對位置,先拿到根目錄,然後再根據相對位置查詢。這個東西的好處是可以直接拿 碼用,只有6個檔案,放...
PHP使用XMLWriter讀寫xml檔案操作詳解
公尺撲科技旗下的多個產品,需要指令碼自動生成sitemap.xml,於是重新溫習一遍php xml讀寫操作。讀寫xml的方式,主要圍繞xmlwriter和xmlreader進行,前者用於生成xml,後者則是用來讀取並解析xml 寫入 xml test xml write.php mimvp.com ...
C 使用TinyXML解析XML
xmltest.cpp是包含主函式的檔案,下面直接上 很簡單,不管怎麼樣,總算是實現了,雖然題目要求不使用外加類庫實現,過段時間等題解出來我再上來更新不加外庫實現的方法。tinyxml 163.com 中國 jsoncpp gmail.com 美國 以上是要讀取xml檔案,下面的是xmltest.c...