У меня есть 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 не правильный?
Формат XML правильный, но узел — это не просто объект XML. Вы видите узлы в документе XML, которые представляют текстовые части документа; а именно, пробел — и, в частности, новые строки — между сущностями XML.
То, что вы хотите сделать, это проверить значение в cur-> type, является ли это XML_ELEMENT_NODE
, XML_TEXT_NODE
; или любой из различных других типов узлов XML, и решите, что вы хотите с ними делать.
И если вы ищете определенный атрибут, например «VT», это будет один из дочерних XML_ATTRIBUTE_NODE
с Radii1
XML_ELEMENT_NODE
,
Других решений пока нет …