2016-05-12 88 views
1

我使用升壓ptree中解析XMLXML版本和編碼

read_xml(stream, pt, trim_whitespace | no_comments); 



<?xml version="1.0" encoding="windows-1252"?> 
<rss> 
<channel>.....</channel> 
</rss> 

如何讀取XML版本和編碼: 我嘗試以下

std::string encoding = pt.get<std::string>("<xmlattr>.encoding", ""); 

這給空字符串。 如何獲取xml的版本和編碼?

回答

1

處理指令不是一個XML元素(實際上它是一個處理指令)。

處理指令沒有<xmlattr>意義上的屬性。你會注意到沒有對應的ptree節點。

這裏實現你可能想要一個未公開的方式:Add xml-stylesheet processing instructions to boost property_tree

+0

感謝@sehe,但我認爲xml_writer_setting總是返回** UTF-8 **作爲編碼[升壓XML到冬季快要](HTTP:// WWW。 boost.org/doc/libs/master/boost/property_tree/detail/xml_parser_writer_settings.hpp),不是嗎? – Hummingbird

+1

基本上,您發現的是Boost沒有XML庫。 – sehe