使用libxml2库读取Xml

Xml read using libxml2 library

本文关键字:Xml 读取 libxml2 使用      更新时间:2023-10-16

我有一个如下的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->名称,首先它会给我文本,然后下一次它会给我Radii1,下一次会给我文本,然后退出代码。

我不知道为什么会发生这种情况是xml的格式不正确?

XML格式是正确的,但是节点不仅仅是一个XML实体。您看到XML文档中的节点表示文档的文本部分;即XML实体之间的空白——特别是换行符。

你要做的是检查current ->类型中的值,它是XML_ELEMENT_NODE还是XML_TEXT_NODE;或任何一种其他类型的XML节点,并决定要对它们做什么。

如果您正在搜索一个特定的属性,如"VT",它将是Radii1 XML_ELEMENT_NODE的子XML_ATTRIBUTE_NODE s之一。