PugiXML пустой документ без ошибок

У меня есть следующий 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

Решение

doc.load() загружает строку, а не файл. Вы должны использовать doc.load_file(),

В идеале разбор строки «/location/filename.xml» должен был завершиться неудачей; Есть сложные причины, почему это не так, в основном связанные с обратной совместимостью.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]