Tag: xpath

libxml2和XPath在ANSI C中遍历子节点和兄弟节点

我在Perl中做了很多XML工作,现在我需要在ANDI C中为项目做一些事情。 这是我用XML片段编写的代码。 我已经获得了学位的成功,但是我遇到了兄弟姐妹的问题,我相信这很容易,但我无法得到它。 有两个函数,一个只是简单地获取节点集(直接从xmlsoft.org复制)。 第二个function是我的。 xmlXPathObjectPtr getnodeset (xmlDocPtr doc, xmlChar *xpath){ xmlXPathContextPtr context; xmlXPathObjectPtr result; context = xmlXPathNewContext(doc); if (context == NULL) { printf(“Error in xmlXPathNewContext\n”); return NULL; } result = xmlXPathEvalExpression(xpath, context); xmlXPathFreeContext(context); if (result == NULL) { printf(“Error in xmlXPathEvalExpression\n”); return NULL; } if(xmlXPathNodeSetIsEmpty(result->nodesetval)){ xmlXPathFreeObject(result); printf(“No result\n”); return NULL; } return result; […]

libxml xmlXPathEvalExpression命令

我已经开始在C使用libxml ,我正在使用xmlXPathEvalExpression函数来评估XPath。 我的XML文件实际上表示一个表,每个子节点表示该表中的一行,其属性是相应的值,因此顺序很重要。 我无法找到有关该function的信息。 它是否按文档顺序返回节点 例如,以下xml文件: 我可以确定在评估/Root/TABLE0/*并获取节点集后,调用nodeSet->nodeTab[0]会得到第一行, nodeSet->nodeTab[1]会得到第二行,依此类推? 如果没有,有没有办法按文件顺序对其进行排序? 谢谢

名称空间和xpath的libxml2错误

我在这里粘贴一些代码,使用gcc file.c -lxml2编译没有警告,假设你的系统中安装了libxml2。 #include #include #include #include #include xmlDocPtr getdoc (char *docname) { xmlDocPtr doc; doc = xmlParseFile(docname); if (doc == NULL ) { fprintf(stderr,”Document not parsed successfully. \n”); return NULL; } return doc; } xmlXPathObjectPtr getnodeset (xmlDocPtr doc, xmlChar *xpath){ xmlXPathContextPtr context; xmlXPathObjectPtr result; context = xmlXPathNewContext(doc); if (context == NULL) { printf(“Error in […]