2 に答える
ドキュメント内で要素が異なる順序で表示された場合でも、結果がクエリと同じ順序で表示されることを保証する式を作成できますか?
XPath 1.0 エンジンではなく、結果の XmlNodeList をドキュメント順に返します。
XPath 2.0 では、次のようにカンマ
,
演算子を使用して、シーケンスが返されるように指定できます。要素[@attr="a"] 、要素[@attr="b"] 、要素[@attr="c"]
最後に、XPath 1.0 の実装に制限がある場合、目的の順序で結果を取得する 1 つの方法は、次の 3 つの XPath 式を評価することです。
要素[@attr="a"]
要素[@attr="b"]
要素[@attr="c"]
次に、最初の結果に最初にアクセスし、2 番目の結果 (2 番目)、3 番目の結果 (3 番目) にアクセスできます。
演算子はそのオペランドの和集合を|
計算し、 XPath 1.0 を使用すると単純に一連のノードを取得します。順序は定義されていませんが、ほとんどの XPath API はドキュメントの順序で結果を返すか、どの順序が必要か、または順序が重要かどうかを指定できます (たとえば、http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathResultを参照してください)。
XPath 2.0 では、ドキュメントの順序で並べられた一連のノードを取得します。XPath 2.0 では、部分式の順序が必要な場合は、ユニオン演算子ではなくコンマ演算子を使用する必要がありますelement[@attr="a"] , element[@attr="b"] , element[@attr="c"]
。