我正在使用libxml library在C中解析一些xml文件。我想比较两个xmlnodes,看看它们是否包含相同的数据。有没有可用的功能?
答案 0 :(得分:1)
libxml API docs似乎合理,并建议xmlBufGetNodeContent和xmlBufContent可以做你想做的事。
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调用xmlNodeDump或xmlNodeGetContent。希望它可以帮助其他有类似问题的人。