2

我正在使用libxml library解析 C 中的一些 xml 文件。我想比较两个 xmlnode 以查看它们是否包含相同的数据。有什么功能可以做到这一点吗?

4

2 回答 2

1

libxml API 文档似乎很合理,并建议xmlBufGetNodeContentxmlBufContent可能会做你想做的事。

xmlNode node1, node2;
......
xmlBuf buf;
xmlChar* content1 = NULL;
xmlChar* content2 = NULL;
if (xmlBufGetNodeContent(&buf, &node1) == 0) {
    content1 = xmlBufContent(&buf);
}
if (xmlBufGetNodeContent(&buf, &node2) == 0) {
    content2 = xmlBufContent(&buf);
}
if (strcmp(content1, content2) == 0) {
    /* nodes match */
}
于 2012-12-07T11:28:25.653 回答
0

我认为 api 调用 xmlBufGetNodeContent 和 xmlBufContent 不再有效。由于这些调用中涉及的数据类型 - xmlBufPtr 不再可用,至少在 libxml2 2.7.6 上没有,我使用了不同的 api 调用xmlNodeDumpxmlNodeGetContent。希望它可以帮助其他有类似问题的人。

于 2019-09-26T15:17:01.917 回答