🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #10057

xpath, namespace atrybutu, libxml2

#10057
From: 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
Technical Details
Message-ID: <gmq8av$83j$1@achot.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail
From: Marcin Stępnicki <mstepnicki@gmail.com>
Newsgroups: pl.comp.xml
Subject: xpath, namespace atrybutu, libxml2
Date: Mon, 9 Feb 2009 21:48:15 +0000 (UTC)
Organization: http://news.icm.edu.pl/
Lines: 51
Message-ID: <gmq8av$83j$1@achot.icm.edu.pl>
NNTP-Posting-Host: chello089077219008.chello.pl
Mime-Version: 1.0
X-Trace: achot.icm.edu.pl 1234216095 8307 89.77.219.8 (9 Feb 2009 21:48:15 GMT)
X-Complaints-To: abuse@icm.edu.pl
NNTP-Posting-Date: Mon, 9 Feb 2009 21:48:15 +0000 (UTC)
User-Agent: Pan/0.132 (Waxed in Black)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit