2011-09-16 244 views
0

我想知道是否有任何方式通過使用stander C++從c字符串生成xml模式?在我當前的應用程序中有一個服務器,它通過套接字發送逗號分隔的字符串。解析日期很麻煩。我想擴展它來將此字符串轉換爲標準的XML格式。這樣我就可以輕鬆地從客戶端解析數據。如何使用標準C++將c字符串轉換爲xml?

C字符串: - 溫度,低:20,高:30,電流:24

XML: -

<temperature> 
    <low>20</low> 
    <high>30</high> 
    <current>24</current> 
</temperature>  

請提供一些鏈路或例如學習更多。謝謝!

回答

0

基本上你有兩個獨立的步驟:

  1. 解析字符串,並得到你想要的它的信息
  2. 編寫XML

對於第1步。我會建議使用一些正則表達式庫,例如Boost.Regex

只要你有解析的信息,你可以簡單地編寫使用標準流的XML轉換成字符串像

std::stringstream s; 
s << "<temperature><low>" << low << "</low><high>" << high << "</high>"; 
s << "<current>" << current << "</current>"; 
s << "</temperature>"; 

,然後用這個字符串s.str()

1

C++沒有XML解析器作爲標準庫的一部分。要做到這一點,你需要一個第三方庫。 MSXMLXerces是我用過的兩個。雖然Xerces的設置起來更麻煩一些,但我不得不說這兩者更好。

+0

[PugiXml](http://pugixml.org/)是另一個庫:非常智能,免費且快速,提供DOM和XPath實現。 – Simon

+0

有很多XML實現,但我只提到了我實際使用的兩個。 –