我有以下XML:
<?xml version="1.0" encoding="utf-8"?>
<jack>
<client name="Music Player Daemon">
<port name="left">
<connection port="jamin:in_L" />
</port>
<port name="right">
<connection port="jamin:in_R" />
</port>
</client>
</jack>
我正在尝试使用PugiXML解析它,但在加载后我的文档为空,结果描述说没有错误:
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load("/location/filename.xml");
std::cout << "Load result: " << result.description() << std::endl;
但这是一个空文档:
std::size_t numitens = std::distance(doc.begin(), doc.end());
std::cout << numitens << std::endl;
输出:
Load result: No error
0
我认为XML不是问题,对吗?
XML是由其他应用程序生成的,所以我无法更改,如果XML中存在问题,我需要更改XML解析器吗? TinyXML还是libxml ++?
答案 0 :(得分:1)
doc.load()
加载字符串,而不是文件。您必须使用doc.load_file()
。
理想情况下,解析字符串“/location/filename.xml”应该失败;它没有复杂的原因,主要与向后兼容性有关。