Я никогда следующий XML:PugiXML пустой документ без ошибок
<?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 ++?
спасибо, теперь xml загружен успешно, я могу doc.child ("jack"); но doc.root() не «jack» почему? –
doc.root() является синонимом документа; член на самом деле принадлежит xml_node, поэтому он не предназначен для использования в xml_document. Вы ищете doc.document_element(). – zeuxcg