🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Marcin Stępnicki Mon, 09 Feb 2009 21:48
xpath, namespace atrybutu, libxml2
#10057
Author: Marcin Stępnicki
Date: Mon, 09 Feb 2009 21:48
50 lines
2093 bytes
Witam.

Mam następujący plik:

<?xml version="1.0" encoding="utf-8"?>
<dokument xmlns="http://pierwszy" xmlns:drugi="http://drugi" wersja="2" 
drugi:wersja="999">
	<x>123</x>
	<x>456</x>
</dokument>

Jakim wyrażeniem wyciągnąć wartość atrybutu drugi:wersja? Próbowałem:

$ xmllint --shell _test.xml

To działa:

/ > cat //*[local-name()='dokument']/@*
 -------
 wersja="2"
 -------
 drugi:wersja="999"

To też:

/ > cat //*[local-name()='dokument']/@wersja
 -------
 wersja="2"

Natomiast różne kombinacje:

/ > cat //*[local-name()='dokument']/@wersja[namespace-uri()='http://drugi']
/ > cat //*[local-name()='dokument' and namespace-uri()='http://drugi']/@wersja
/ > cat //*[local-name()='dokument']/drugi:@wersja

nie za bardzo chcą mi zwrócić to czego oczekuję :>. Ten ostatni powoduje nawet 
błąd "Undefined namespace prefix", ale już wiem dlaczego i powiedzmy że 
rozumiem skąd się to bierze.

Czy ktoś mógłby mi pomóc lub wskazać linka w którym znajduje się potrzebna
mi informacja? 

Dla porządku jeszcze wersja xmllint:

$ xmllint --version
xmllint: using libxml version 20631
   compiled with: Threads Tree Output Push Reader Patterns Writer 
    SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer
   XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas 
   Schematron Modules Debug Zlib
Re: xpath, namespace atrybutu, libxml2
#10058
Author: szomiz
Date: Tue, 10 Feb 2009 09:04
8 lines
1309 bytes
Użytkownik "Marcin Stępnicki" <mstepnicki@gmail.com> napisał w wiadomości 
news:gmq8av$83j$1@achot.icm.edu.pl...

> Jakim wyrażeniem wyciągnąć wartość atrybutu drugi:wersja? Próbowałem:

ZTCP: register_namespaces

sz. 
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