0

我有一个如下的 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 的格式不正确?

4

1 回答 1

1

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

您要做的是检查 cur->type 中的值,是否是 an XML_ELEMENT_NODE, an XML_TEXT_NODE; 或各种其他类型的 XML 节点中的任何一种,并决定要对它们做什么。

如果您正在搜索特定属性,例如“VT”,它将XML_ATTRIBUTE_NODERadii1 XML_ELEMENT_NODE.

于 2016-06-29T21:12:23.257 回答