libxml xmlXPathEvalExpression命令

时间:2014-03-25 06:29:14

标签: c xml xpath libxml2

我已经开始在libxml中使用C,我正在使用xmlXPathEvalExpression函数来评估XPath。

我的XML文件实际上代表一个表,每个子节点代表该表中的一行,其属性是相应的值,因此顺序很重要。

我无法找到有关该功能的信息。它是否按文档顺序返回节点

例如,以下xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Root>
    <TABLE0>
      <Row Item0="1" Item1="2"/>
      <Row Item0="2" Item1="3"/>
      <Row Item0="3" Item1="4"/>
    </TABLE0>
    <TABLE1>
      <Row Item0="1" Item1="12"/>
      <Row Item0="6" Item1="15"/>
    </TABLE1>
</Root>

我是否可以确定在评估/Root/TABLE0/*并获取节点集后,调用nodeSet->nodeTab[0]将获得第一行,nodeSet->nodeTab[1]将获得第二行,依此类推?

如果没有,有没有办法按文件顺序对其进行排序?

由于

1 个答案:

答案 0 :(得分:3)

是的,使用xmlXPathEvalExpression评估或使用xmlXPathCompile编译的XPath表达式的结果始终按文档顺序排序。 (在内部,他们通过使用 true 排序标志调用xmlXPathCompileExpr来编译。)