Thread View: pl.comp.xml
6 messages
6 total messages
Started by Reeno
Tue, 20 May 2008 11:00
XPath jak znalezc pierwsze rodzenstwo?
Author: Reeno
Date: Tue, 20 May 2008 11:00
Date: Tue, 20 May 2008 11:00
28 lines
1873 bytes
1873 bytes
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
Re: XPath jak znalezc pierwsze rodzenstwo?
Author: max
Date: Tue, 20 May 2008 11:45
Date: Tue, 20 May 2008 11:45
9 lines
1134 bytes
1134 bytes
> 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 /node[text()='two'] ?
Re: XPath jak znalezc pierwsze rodzenstwo?
Author: TOUDIdel
Date: Wed, 21 May 2008 09:51
Date: Wed, 21 May 2008 09:51
23 lines
1604 bytes
1604 bytes
Użytkownik "max" <max@max.pl> napisał w wiadomości
news:g0udfj$4j3$1@portraits.wsisiz.edu.pl...
>
>> 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
> /node[text()='two'] ?
<root>
<node>one</node>
<node>two</node>
<node3>three</node3>
<node4>four</node4>
</root>
takiego node'a nie ma. jest co najwyżej /root/node[text()='two']
--
td
Re: XPath jak znalezc pierwsze rodzenstwo?
Author: TOUDIdel
Date: Wed, 21 May 2008 10:06
Date: Wed, 21 May 2008 10:06
46 lines
2473 bytes
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
Re: XPath jak znalezc pierwsze rodzenstwo?
Author: TOUDIdel
Date: Wed, 21 May 2008 10:25
Date: Wed, 21 May 2008 10:25
10 lines
1446 bytes
1446 bytes
Użytkownik "TOUDIdel" <toudidel@oDWA.pl> napisał w wiadomości news:g10sjp$scn$1@nemesis.news.neostrada.pl... > /*/*[text()="two"]/following-sibling::*[1] P.S. ale to i tak pod warunkiem że na drugim poziomie w dokumencie jest tylko jeden węzeł z zawartością tekstową równą "two". w przeciwnym wypadku można się zdziwić. -- td
Re: XPath jak znalezc pierwsze rodzenstwo?
Author: Reeno
Date: Wed, 28 May 2008 11:42
Date: Wed, 28 May 2008 11:42
11 lines
1743 bytes
1743 bytes
On 21 Maj, 12:25, "TOUDIdel" <toudi...@oDWA.pl> wrote: > > > /*/*[text()="two"]/following-sibling::*[1] > > P.S. ale to i tak pod warunkiem że na drugim poziomie w dokumencie jest > tylko jeden węzeł z zawartością tekstową równą "two". w przeciwnym wypadku > można się zdziwić. > -- > td tak jak mowisz, rozwiazalem to wlasnie w ten sposob.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads