我已经开始在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]
将获得第二行,依此类推?
如果没有,有没有办法按文件顺序对其进行排序?
由于
答案 0 :(得分:3)
是的,使用xmlXPathEvalExpression
评估或使用xmlXPathCompile
编译的XPath表达式的结果始终按文档顺序排序。 (在内部,他们通过使用 true 排序标志调用xmlXPathCompileExpr
来编译。)