XPATH 2.0 query

0

Mam następujący xml

<?xml version="1.0" encoding="UTF-8"?>
<quo:Zaklad xmlns:quo="http://www.xxx.com/XMLSchema/Zaklad" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xxx.com/XMLSchema/xxx.xsd" quo:nr="356-12">
   <quo:id_produktu>304</quo:id_produktu>
   <quo:wersja_produktu>3</quo:wersja_produktu>
   <quo:Nazwa_produktu>
</quo:Zaklad>

Jak napisać zapytanie w XPATH 2.0, które zwróci id_produktu?

0

Żadne zapytanie nie zwróci bo XML jest nieprawidłowy (niezamknięte <quo:Nazwa_produktu> - tak czepiam się).

Ogólnie z przestrzeniami nazw w XPath jest trochę problem...

Albo rejestrujesz przestrzenie nazw za pomocą biblioteki której używasz, wtedy masz

/quo:Zaklad/quo:id_produktu/text()

Albo używasz zapytania neutralnego ze względu na przestrzeń nazw:

/*[local-name() = 'Zaklad']/*[local-name() = 'id_produktu']/text()
0
msm napisał(a):

Albo używasz zapytania neutralnego ze względu na przestrzeń nazw:

/*[local-name() = 'Zaklad']/*[local-name() = 'id_produktu']/text()

To zadziałało, ale jak wyciągnąć nr? Stąd:

<quo:Zaklad xmlns:quo="http://www.xxx.com/XMLSchema/Zaklad" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xxx.com/XMLSchema/Zaklad zaklad.xsd" quo:nr="356-12-304">

0

Do atrybutów odwołujesz się przez @, czyli w tym przypadku:

/*[local-name() = 'Zaklad']/@*[local-name()='nr']

1 użytkowników online, w tym zalogowanych: 0, gości: 1