2012-04-07 13 views
29

Aşağıdaki çok basitleştirilmiş örneği inceleyin.Belirtilen düğümden sonra kardeş düğümünü bul

<n></n> 
<k></k> 
<m></m> 
<k></k> 

Ben m düğüm sonra ilk k kardeş için nasıl arayabilirim? Temel olarak, bazı düğümleri bulun ve ardından o düğümden aramaya devam edin.

+1

@Neil'den gelen cevaplar ve yorumları neden kayboldu? –

cevap

57

Ben m düğüm sonra ilk k kardeş için nasıl arayabilirim? Temel olarak, numaralı düğümü bulup o düğümden aramaya devam edin.

<t> 
    <n></n> 
    <k></k> 
    <m></m> 
    <k></k> 
</t> 

sonra aşağıdaki XPath ifadesi:

/*/m[1]/following-sibling::k[1] 

ilk ilk k aşağıdaki-kardeşini seçer

aşağıdaki iyi biçimli XML belgesi olduğunu varsayarsak XML belgesinin üst öğesinin m alt öğesi.

+0

Çok karmaşık. –

+0

Aslında dün aşağı oyumu kaldırmak istedim, ancak site 24 dakika sonra çok geç olduğunu söyledi. Hayat bu. –

4

güzel soru: denemek ........

<a> 
<n></n> 
<k></k> 
<m></m> 
<k></k> <==== 
<k></k> 
<m></m> 
<k></k> 
</a> 


    /a/k[. = preceding::m][1] 
+0

Bu cevap ilginçtir, ancak ** ilk "m" nin "k" ye sahip olması ** ile başlar, ** geçerli düğümden değil **. –

+0

Ayrıca, önceki 'm' bir geri referans bit mi? İlk önce 'm' diye görünen bir çözümden daha az performanslı olmaz mıydı? (Bilmiyor) – jpaugh

İlgili konular