TinyXML是什么?
? ? ? ?TinyXML是一個輕量級的C++ XML解析器,它提供了一種簡單的方法來解析和操作XML文檔。TinyXML被設計為易于使用和集成到C++項目中,并且非常適合處理小型XML文件。
?以下是TinyXML的一些主要特點和優點:
輕量級: TinyXML的設計目標之一是保持代碼庫的小巧簡潔,因此它非常適合用于嵌入式系統或具有資源限制的環境。
簡單易用: TinyXML提供了簡單直觀的API,使得解析和操作XML文檔變得容易。它的API設計使得開發人員可以快速上手并完成XML處理任務。
跨平臺性: TinyXML是跨平臺的,可以在各種操作系統上運行,包括Windows、Linux和Mac OS等。
開源: TinyXML是開源的,可以在許可證允許的情況下免費使用和修改。
支持XML解析和生成: TinyXML支持解析XML文檔,并且可以將XML數據寫入到文件或內存中。
適用于小型XML文件: 盡管TinyXML可以解析和處理XML文件,但它更適用于處理小型XML文件,因為它的設計目標之一是保持簡潔和高效。
? ? ? ?雖然TinyXML功能不如一些更復雜的XML庫,但它的簡單性和輕量級使得它成為處理小型XML任務的良好選擇。
下載:TinyXML download | SourceForge.net
打開下載后的文件,將下面六個文件復制,兩個頭文件,四個cpp文件
下面我會通過靜態庫的形式調用TinyXML庫。
用VS新建一個空白工程
將剛剛復制的六個文件放入該工程中
修改項目屬性,改為lib靜態庫
點擊生成解決方案,提示成功即可
打開工程目錄,并返回上一級
找到X64文件
新建一個文件夾,命名為lib, 復制.lib文件,放入lib文件夾中
而后將下載的XML庫文件內的兩個頭文件單獨復制出來,放到一個新建的文件夾include內
最后我們現在就會得到兩個文件夾
現在我們新建一個工程,在VC++目錄內修改包含目錄和庫目錄
包含目錄為剛剛我們新建的include文件夾
庫目錄為剛剛新建的Lib文件夾
最后在“鏈接器“---”輸入“---附加依賴項
將附加依賴項改為我們lib文件夾內的 .lib文件的絕對路徑
比如說:Z:\WorkPlace\test-0001\lib\test-0001.lib
代碼測試:
測試所需的文件:
鏈接: https://pan.baidu.com/s/1uV3W7z2C3IDYBubkV2ZC_Q?pwd=dnkm 提取碼: dnkm 復制這段內容后打開百度網盤手機App,操作更方便哦?
--來自百度網盤超級會員v5的分享
#include "tinyxml.h"
#include <iostream>int main() {//讀取XML文件TiXmlDocument doc("Z:\\XML1.xml"); // if (!doc.LoadFile()) {std::cerr << "Failed to load file" << std::endl;return -1;}TiXmlElement* root = doc.RootElement(); // 獲取根元素if (!root) {std::cerr << "Failed to find root element" << std::endl;return -1;}// 直接獲取<params>元素TiXmlElement* params = root->FirstChildElement("params");if (params) {// 遍歷<params>下的所有子元素for (TiXmlElement* param = params->FirstChildElement(); param; param = param->NextSiblingElement()) {const char* paramName = param->Value(); // 獲取元素名稱const char* paramValue = param->GetText(); // 獲取元素的文本內容// 使用printf輸出printf("%s: %s\n", paramName, paramValue);}}else {std::cerr << "No <params> element found" << std::endl;}return 0;
}
測試結果:
至此,我們調用TinyXML庫讀取XML文件的過程就結束了。