Чтение XML с использованием библиотеки libxml2

У меня есть XML-файл, как показано ниже

<root>
<Radii1 VT = "121212 121212"/>
</root>

Я пытаюсь прочитать XML с помощью библиотеки libxml2.

cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *)"Radii1"))){

}

cur = cur->next;
}

Теперь моя проблема в том, что если я печатаю cur-> name, сначала он дает мне текст, затем в следующий раз он даст мне Radii1 и снова в следующий раз даст текст, а затем выйдет из кода.

Я не уверен, почему это происходит, если формат XML не правильный?

0

Решение

Формат XML правильный, но узел — это не просто объект XML. Вы видите узлы в документе XML, которые представляют текстовые части документа; а именно, пробел — и, в частности, новые строки — между сущностями XML.

То, что вы хотите сделать, это проверить значение в cur-> type, является ли это XML_ELEMENT_NODE, XML_TEXT_NODE; или любой из различных других типов узлов XML, и решите, что вы хотите с ними делать.

И если вы ищете определенный атрибут, например «VT», это будет один из дочерних XML_ATTRIBUTE_NODEс Radii1 XML_ELEMENT_NODE,

1

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

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

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