比较C中的两个XMLNode(libxml库)

时间:2012-12-07 11:13:15

标签: c xml xmlnode nsxmlnode

我正在使用libxml library在C中解析一些xml文件。我想比较两个xmlnodes,看看它们是否包含相同的数据。有没有可用的功能?

2 个答案:

答案 0 :(得分:1)

libxml API docs似乎合理,并建议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 */
}

答案 1 :(得分:0)

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