我有一个 XML 文件如下
<root>
<Radii1 VT = "121212 121212"/>
</root>
我正在尝试使用 libxml2 库读取 xml。
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
.
关于c++ - 使用 libxml2 库读取 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107131/