我正在使用libxml library解析 C 中的一些 xml 文件。我想比较两个 xmlnode 以查看它们是否包含相同的数据。有什么功能可以做到这一点吗?
问问题
1282 次
2 回答
1
libxml API 文档似乎很合理,并建议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 */
}
于 2012-12-07T11:28:25.653 回答
0
我认为 api 调用 xmlBufGetNodeContent 和 xmlBufContent 不再有效。由于这些调用中涉及的数据类型 - xmlBufPtr 不再可用,至少在 libxml2 2.7.6 上没有,我使用了不同的 api 调用xmlNodeDump或xmlNodeGetContent。希望它可以帮助其他有类似问题的人。
于 2019-09-26T15:17:01.917 回答