20

この(簡略化された)XMLを持つ:

<?xml version="1.0" encoding="UTF-8"?>
<kml>
<Document>
        <Placemark>
            <name>Poly 1</name>
            <Polygon>
                        <coordinates>
                            -58.40844625779582,-34.60295278618136,0
                        </coordinates>
            </Polygon>
        </Placemark>
        <Placemark>
            <name>Poly 2</name>
            <Polygon>
                        <coordinates>
                            -58.40414334150432,-34.59992445476809,0
                        </coordinates>
            </Polygon>
        </Placemark>
</Document>
</kml>

各目印の名前と座標を選択するにはどうすればよいですか?現在、次のXPath式を使用して名前を選択できます。

//Document//Placemark//name

他のデータなしで両方を選択するにはどうすればよいですか?

4

3 に答える 3

45

XPath式で共用体を使用できます。演算子を使用するだけです:|

//Document/Placemark/name | //Document/Placemark/Polygon/coordinates

//必要がない場合は、 (軸)を使用しないでください。を使用する//と、これも機能します//name | //coordinates。正確なパスを指定する方がパフォーマンス的に優れています。

于 2012-06-14T20:09:54.583 に答える
6

使用

/*/*/Placemark/name | /*/*/Placemark/*/coordinates

これは、2つの別々のXPath式の結果の和集合|を指定します。標準のXPath和集合演算子が使用されます。選択されているのは、XMLドキュメントの最上位要素の孫でnameある要素の子であるすべての要素Placemark、XMLドキュメントの最上位要素の孫である要素の孫であるすべての要素です。coordinatesPlacemark

選択された要素はドキュメントの順序で表示されます(ただし、標準のW3Cドキュメントでは順序が指定されていません)。つまり、評価の結果(通常はXmlNodeListタイプ)の直後nameに、対応する要素が続きcoordinatesます。

于 2012-06-15T01:37:46.303 に答える
0

解決済み://目印/ * [self::nameまたはdescendant::coordinates]

于 2016-06-30T06:15:58.823 に答える