Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][xpath, xml, php] dostęp do elementu po ścieżce
borovsky
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.09.2007

Ostrzeżenie: (0%)
-----


wiecie, jak w simplexml (php) mieć dostęp do node: glowny.dziecko.jakistam, gdzie xml jest :
<item id="glowny">
<item id="dziecko">
<item id="jakistam">
</item>
</item>
</item>

?

używam simplexml

jak napisać odwołanie xpath: coś na wzór:

getPathByAttribute(["id"], "glowny.dziecko.jakistam")
normalnie to notacją kropkową tworzy się ścieżkę bazującą na nazwach węzłów, a nie na atrybucie.

Ten post edytował borovsky 25.06.2010, 09:31:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
mi jednak zależy na dostępie poprzez złożenie ścieżki.

To się w końcu zdecyduj - przez własną konwencję nazewnictwa, czy przez XPath? Bo o ile pamiętam, to XPath miał nieco inną składnię niż ta, którą podajesz.

Wg tej Twojej, trzeba by było najpierw napisać odpowiedni parser, który pozamienia znaki, dopiero potem poszuka po xpath.

Cytat
nawet mogę sobie napisać funkcję bez użycia xpath, jednak szukam uniwersalnych rekomendowanych rozwiązań.

Wytłumacz mi jedno: po co sobie utrudniasz życie? Przecież parsując to coś i tak musisz wygenerować XPath, niezależnie od Twojej składni

Cytat
/item[@id='obrazy']/item[@id='wnetrza']/item[@id='swiatla']

Ile razy trzeba Ci jeszcze tłumaczyć, że ID musi być unikalne? Jak nie będzie, to nie mamy nawet o czym dyskutować, gdyż tak ma być i niektóre parsery będą wariować jak znajdą kilka takich samych identyfikatorów?

Cytat
1.czy node ma atrybut id o takiej wartości
2.jeśli nie, to czy ma nazwa o takiej wartości

Jak pisałem, raczej czeka Cię pisanie własnego parsera.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 16:48