XPath, çocuğun alt değerine göre öğe seçme


208

Çocuklardan birinin değerine göre bir öğe seçmeye çalışmak

Aşağıdaki düşünmek ama çalışmıyor, herhangi bir yardım için teşekkür ederiz, teşekkürler

./book[/author/name = 'John'] veya

./book[/author/name text() = 'John']

Yazar adının = 'John' olduğu tüm kitapları istemek

XML dosyası

<list>
   <book>
      <author>
         <name>John</name>
         <number>4324234</number>
      </author>
      <title>New Book</title>
      <isbn>dsdaassda</isbn>
   </book>
   <book>...</book>
   <book>...</book>
</list>

Yanıtlar:


300

Neredeyse. Sizin yükleminizde, göreli bir yol istiyorsunuz , bu yüzden değiştirin

./book[/author/name = 'John'] 

ikisine de

./book[author/name = 'John'] 

veya

./book[./author/name = 'John'] 

ve öğenizle eşleşeceksiniz. Mevcut yükleminiz aramak için belgenin köküne geri döner author.


1
Olmadan .benim için çalışmadı (gerekli ./author/name)
MichaelChirico

Bu sözdizimini bir işlevde kullanmak mümkün müdür? Örneğin, böyle bir şey nasıl uygulanır ./book[contains(author/name, "John")]?
Sadece bir öğrenci

1
@OgrishMan yeni sorular gitmeli Yeni Soru , ama ondan önce ben sadece denemek istiyorum! Genellikle xpath içindeki dize değişmez değerleri için 'çift tırnak yerine tek tırnak istersiniz ".
AakashM
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.