[英]reading an XML file in a C++ program
我正在嘗試在我的C ++程序中讀取XML文件。 XML文件看起來像這樣:
<?xml version="1.0" encoding="utf-8"?>
<myprogram>
<configuration>
<window>
<height> 300 </height>
<width> 500 </width>
</window>
</configuration>
</myprogram>
現在我可以查看XML文件並嘗試按如下方式閱讀:
ifstream in("mydata.xml");
//ignore the <?xml line
in.ignore(200, '\n');
//i know that the first value i want is the window height so i can ignore <myprogram> <configuration> and <window>
//ignore <myprogram>
in.ignore(200, '\n');
//ignore <configuration>
in.ignore(200, '\n');
//ignore <window>
in.ignore(200, '\n');
string s; int height;
//okay, now i have my height
in >> s >> height;
一般來說,這似乎是個壞主意,它確實限制了XML文件的修改方式。 上面的解決方案是非常手動的,如果XML中的任何內容發生變化,似乎必須更改整個讀取方法。
有一個更好的方法嗎?
您可以使用一些可以為您完成的庫。 如果您使用的是Windows平台,則可以使用MSXML ,它已經是系統的一部分。
檢查這個問題: 在C ++中讀寫XML文件
您可以使用具有解析XML功能的POCO庫
boost屬性樹適用於xml,我會用它。
在多平台源代碼中,我通常使用Qt XML閱讀器。
您有3種閱讀方式:
如果您只編寫Windows軟件,則應使用MSXML 6.由於Windows XP SP3 MSXML 6.0是操作系統的一部分。
在Linux上,你應該使用libxml2 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.