Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przestrzenie nazw w XPath
Nalfein][WR
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Żory / K-ce

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


Jak w XPath odwoływać się do przestrzeni nazw? Wie ktoś?

Bo wiem, że mogę napisać:

Kod
/my:element/xi:include/my:tag


ale w ten sposób podaję prefiks, a chodzi mi o URI określające "podpiętą" pod prefiks przestrzeń.

Doczytałem, że jest "oś" ::namespace, ale nigdzie nie udało mi się znaleźć przykładu jak jej użyć.

Chodzi mi mniej więcej o coś takiego:

Kod
/element/include[namespace()="http://www.w3c.org/2001/XInclude"]


czyli o sposób w jaki mogę pobrać np. elementy <include> należące do XInclude, nie pobierając elementów <include> zdefiniowanych w moim własnym języku w innej przestrzeni nazw.


--------------------
Gadu-Gadu: 3909164
Go to the top of the page
+Quote Post
Seth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


[xml:1:88a8d6e27c]/element/include[@<nazwa namespace>="http://www.w3c.org/2001/XInclude"][/xml:1:88a8d6e27c]
Moze tak :?
Go to the top of the page
+Quote Post
Nalfein][WR
post
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Żory / K-ce

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


Gdzie <nazwa namespace> to co? Prefix? Nie chcę operować na prefiksach, bo prefiksy wybiera tworzący plik XML tak, aby nie było kolizji. Nie chcę ingerować w to czy napisze sobie "xsd" czy "schema".


--------------------
Gadu-Gadu: 3909164
Go to the top of the page
+Quote Post
Nalfein][WR
post
Post #4





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Żory / K-ce

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


Działa taki mutant:

Kod
/element/*[local-name="include" and namespace-uri()="http://www.w3c.org/2001/XInclude"]


a to co wydawałoby się najbardziej intuicyjne:

Kod
/element/include[namespace-uri()="http://www.w3c.org/2001/XInclude"]


oczywiście nie. Nawet, gdy element <include> nie ma prefiksu. Może po prostu spaprali XPath w libxml2 lub w PHP5, bo niektóre teoretycznie poprawne przykłady XPath też nie działają tak jak powinny.

Ale nakarmię Cię Seth winksmiley.jpg


--------------------
Gadu-Gadu: 3909164
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 16:16