2010-01-04 23 views
44

Ayrıştırılmış XML belgesinden belirli bir iç metin içeren bir eleman çıkarmaya çalışıyorum. Ben //myparent[mychild='foo'] kullanarak belirli bir iç metin içeren bir çocuğa sahip bir öğe seçebileceğimi biliyorum, ancak aslında bu örnekte "mychild" öğesini seçmek istiyorum.İç metin ile XPath seçimi

<myparent> 
    <mychild> 
    foo 
    </mychild> 
</myparent> 

Ne "myChild" düğümünü dönecekti "foo" için XPath sorgusu olurdu?

cevap

69

Bunu denediniz mi?

//myparent/mychild[. = 'foo'] 
+4

or // myparent [mychild = 'foo'] –

+0

@subtenante: Teşekkürler, tam ihtiyacım olan şey buydu. – kdt

+2

@Matt: Eğer OP mychild elemanını seçmek istiyorsa, o zaman çözümünüz işe yaramayacaksa, myparent elemanını seçecektir. – glmxndr

3

Matt, bahsedilen ama tam bir çözüm:

//myparent/mychild[text() = 'foo'] 

Alternatif olarak, self eksen kısayol kullanabilir // myparent [myChild = 'foo']/myChild

+0

"myparent" öğesinin "mychild" inin iç metin olarak "foo" olduğu tüm "nafaka" nın tüm çocuk düğümlerini arar. – Civa