🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #9884

Re: XPath jak znalezc pierwsze rodzenstwo?

#9884
From: TOUDIdel
Date: Wed, 21 May 2008 10:06
46 lines
2473 bytes
Użytkownik "Reeno" <reenomt2@gmail.com> napisał w wiadomości 
news:41f35acb-01a6-44df-802d-18e297170461@59g2000hsb.googlegroups.com...
> Witam
>
> Mam problem z XPath i znalezieniem pierwszego rodzenstwa.
>
> Mamy np. XML:
>
> <root>
> <node>one</node>
> <node>two</node>
> <node3>three</node3>
> <node4>four</node4>
> </root>
>
> Jaka formula XPath znajdzie mi pierwsze rodzenstwo dla node = 'two',
> czyli docelowo chodzi o <node3>.
> $x_path trzyma caly DOM XML;
>
> Probowalem cos na styl tego
>
> $x_path->evaluate('//node=\'two\'::following-sibling[1]');
>
> ale niestety nie jest to poprawne wyrazenie, i z w3c schools nie moge
> wywnioskowac jak powinno sie wykonac takie zapytanie...
>
> Prosze o pomoc kolegow z wiekszym doswiadczeniem z XPath ;)
>
> Pozdrawiam
> Reeno

trudno powiedziec o jakie rodzenstwo Ci chodzi, bo tak naprawdę "pierwsze" 
rodzeństwo dla <node>two</node> to są 2 elementy: <node>one</node> i 
<node>three</node>. Oba są takim samym rodzeństwem tego elementu. Więc 
doprecyzować trzebaby samo pojęcie "pierwsze rodzeństwo" (czy chodzi o 
pierwszy element rodzeństwa występującego przed węzłem kontekstowym czy po)

z Twojego przykładu jednak wnioskuję że chodzi o rodzeństwo występujące po i 
Twoja próba była całkiem poprawna, z tym że najpierw podaje się nazwę osi, 
potem ::, a potem badanie węzła:

/*/*[text()="two"]/following-sibling::*[1]

-- 
td 
Technical Details
Message-ID: <g10sjp$scn$1@nemesis.news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
References: <41f35acb-01a6-44df-802d-18e297170461@59g2000hsb.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: "TOUDIdel" <toudidel@oDWA.pl>
Newsgroups: pl.comp.xml
Subject: Re: XPath jak znalezc pierwsze rodzenstwo?
Date: Wed, 21 May 2008 12:06:16 +0200
Organization: TP - http://www.tp.pl/
Lines: 48
Message-ID: <g10sjp$scn$1@nemesis.news.neostrada.pl>
References: <41f35acb-01a6-44df-802d-18e297170461@59g2000hsb.googlegroups.com>
NNTP-Posting-Host: hau2.internetdsl.tpnet.pl
X-Trace: nemesis.news.neostrada.pl 1211364793 29079 79.187.20.2 (21 May 2008 10:13:13 GMT)
X-Complaints-To: usenet@news.neostrada.pl
NNTP-Posting-Date: Wed, 21 May 2008 10:13:13 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit