c++ - 使用 libxml2 库读取 xml

标签 c++ xml xml2

我有一个 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/

相关文章:

c++ - 在 FOR 循环外定义的变量范围?

java - 使用dom和java的xml编码中的特殊字符?

java - XML解析问题

r - 在 R : Incorrect namespaces 中解析 XML

c++ - 双向链表的复制构造函数

C++ 文件无法打开

c++ - 尝试通过多个函数移动数组并遇到一个我不知道如何修复的错误

java - 如何将共享首选项文件从内部存储传输到外部存储?

r - 在 R 中的高尔夫网站上抓取排行榜表

r - 获取内存分配失败: growing nodeset hit limit with xml2 package