これを(単純化した)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
他のデータなしで両方を選択するにはどうすればよいですか?
XPath式で共用体を使用できます。演算子を使用するだけです:|
//Document/Placemark/name | //Document/Placemark/Polygon/coordinates
必要がない場合は、//
(descendant axis)を使用しないでください。 //
を使用すると、これも機能します://name | //coordinates
。正確なパスを指定する方がパフォーマンス面で優れています。
使用:
/*/*/Placemark/name | /*/*/Placemark/*/coordinates
これは、2つの個別のXPath式の結果のunionを指定します-標準のXPathユニオン演算子|
使用されている。選択されているのは、XMLドキュメントの最上位要素の孫であるname
要素の子であるすべてのPlacemark
要素ですplusXMLドキュメントの最上位要素の孫であるcoordinates
要素の孫であるすべてのPlacemark
要素。
選択された要素はドキュメントの順序になります(ただし、標準のW3Cドキュメントでは順序が指定されていません)。つまり、評価の結果(通常はXmlNodeList型)の場合、name
要素の直後に対応するcoordinates
要素。
解決済み:// Placemark/* [self :: name or descendant :: coordinates]