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

问题描述 投票:2回答:2

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

c xml xmlnode nsxmlnode
2个回答
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 */
}

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.