2012-06-14 17 views
15

bu (basitleştirilmiş) XML Having:Farklı seviyelerde birden fazla düğüm nasıl seçilir?

<?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> 

nasıl adını ve her İşareti'nin koordinatlarını seçebilir? Şu anda aşağıdaki XPath ifadesi ile adını seçebilirsiniz: Nasıl hem diğer veri olmadan seçebilir

//Document//Placemark//name 

?

cevap

38

Bir bileşimi XPath ifadenizde kullanabilirsiniz. |

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

size gerekmiyorsa // (soyundan ekseni) kullanmayın: Sadece operatörü kullanın. // kullanarak, bu da çalışır: //name | //coordinates. Tam yolu belirtmek daha iyi performansa sahiptir.

5

Kullanım:

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

Bu iki ayrı XPath ifadeleri sonuçlarının birliği belirtir - standart XPath sendika operatörü | kullanılır. Hepsini aç Hepsini kapa Belirtiler Placemark öğesinin üst öğesinin bir torun olan Placemark öğesinin alt öğesi olan tüm name öğelerinin seçildiği, Placemark öğesinin üst öğesinin torununu oluşturan öğesinin tüm öğeleri XML belgesi değerlendirmenin sonucu (genellikle tip XmlNodeList arasında) bir name elemanın doğrudan karşılık gelen coordinates eleman izlemektedir anlamına gelir, (normatif W3C belge sırasını belirten rağmen)

seçilmiş elemanları belge amacıyla gelir.

0

Çözüldü: // Yer İşareti/* [kendi adı :: ad veya soyundan gelen :: koordinatlar]

İlgili konular