🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by sobczyk.wojciech Mon, 26 Feb 2007 01:33
Problem z XPath i namespaces
#9137
Author: sobczyk.wojciech
Date: Mon, 26 Feb 2007 01:33
13 lines
1447 bytes
Mam oto taki XML:

<xml xmlns="http://abc">
  <A t="ttt"></A>
  <B xmlns="http://qwerty"><X>aaaa</X></B>
</xml>

Jak wybrać element "B" za pomocą XPath bez modyfikacji tego xml-a?

węzeł A wybiera bez problemu: /xml/A
za to /xml/B nie działa, a jak usunę xmlns="http://qwerty"  to działa.
Nie można niestety zmienić tego xml-a i dodać aliasu do przestrzeni
nazw: xmlns:x="http://qwerty"
Re: Problem z XPath i namespaces
#9138
Author: szomiz
Date: Mon, 26 Feb 2007 07:58
26 lines
1801 bytes
Użytkownik <sobczyk.wojciech@gmail.com> napisał w wiadomości 
news:1172453590.725315.10010@z35g2000cwz.googlegroups.com...
> Mam oto taki XML:

> <xml xmlns="http://abc">
>   <A t="ttt"></A>
>   <B xmlns="http://qwerty"><X>aaaa</X></B>
> </xml>

> Jak wybrać element "B" za pomocą XPath bez modyfikacji tego xml-a?

Koszernie: zadeklarowac parserowi przestrzenie nazw z nadanymi na potrzeby 
wyszukiwania prefiksami (i nie ma znaczenia ze nie wystepuja one fizycznie w 
dokumencie).

Np.w msxml:
    setProperty('SelectionNanespaces','xmlns:ns1="uri1" xmlns:ns2="uri2"')
I pozniej:
    /ns1:xml/ns2:B

Bez deklarowania przestrzeni tez sie da, ale strasznie brzydko to wyglada:

    /*[name()='nazwa'][namespace-uri()='uri1']
sz.

P.S. Ten Wojtek S.? 
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