2014-03-25 43 views
1

我已經開始在C中使用libxml,並且我使用xmlXPathEvalExpression函數來評估XPath。libxml xmlXPathEvalExpression order

我的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]會得到第二個等?

如果沒有,是否有辦法按文件順序排序?

感謝

回答

3

是的,xmlXPathEvalExpression評估或xmlXPathCompile編譯後的XPath表達式的結果總是整理文檔順序。 (在內部,它們通過調用xmlXPathCompileExpr編譯,排序標誌。)