2011-06-08 22 views
18

Ben XML aşağıdaki olan bazı niteliklerini değerleri filtrelemek için:XPATH Sorgu yalnızca

<Library> 
<Item> 
    <Field Name="Name">smooth</Field> 
    <Field Name="File Type">mid</Field> 
    <Field Name="File Size">60026</Field> 
</Item> 
<Item> 
    <Field Name="Name">mid</Field> 
    <Field Name="File Type">mp3</Field> 
    <Field Name="File Size">4584972</Field> 
</Item> 
</Library> 

ben dosya türü "orta" nin tüm öğeleri öğe adlarını almak istiyorum. Benim XPATH sorgum

Ne yazık ki her iki öğe de bu sorgudan döndürülür.

smooth 
mid 

son durum yalnızca nitelik "Dosya Türü" içeren alanlar, ancak tüm alanlarda karşı işaretli olmadığından emin görünüyor. Bu öğe "mp3" dosya türünde olsa bile, "mid" isminin bir dönüşü ile sonuçlanır.

Alan = "Dosya Türü" niteliği ile alanın değerini "orta" ile karşılaştırmayı nasıl kısıtlayabilirim?

Herkes bana beklendiği gibi çalışan bir XPATH sözdizimi önerir mi?

cevap

22

XPath yüklemler bu daha düz ileri olurdu, her yerde uygulanabilir:

/Library/Item[Field[@Name="File Type"] = "mid"]/Field[@Name="Name"] 

Kendi ifadesi oldukça hızlı cevap, teşekkürler oldu

/Library/Item/Field[ 
    @Name="Name" 
    and ../Field[@Name="File Type"] = "mid" 
] 
+1

olarak doğru olurdu! – klzlk