Расстраивает проблема с XInclude / XPointer здесь.
Целью является включение записей из списка ценовых записей в формате XML в другой документ.
У меня есть документ со списком цен, который выглядит следующим образом:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE preise [
<!ELEMENT preise (preis+)>
<!ELEMENT preis (#PCDATA)>
<!ATTLIST preis id ID #REQUIRED>
]>
<preise>
<preis id="a0">./.</preis>
<preis id='foo100'>136,10</preis>
<preis id='foo101'>163,32</preis>
</preise>
Не удалось включить следующее
<xi:include href="../listen/preise.xml#xpointer(/preise/preis[@id='foo100']/text())" />
с
element include: XInclude error : failed build URL
Теперь, если я изменю формат идентификаторов в прайс-листе на исключительно числовой
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE preise [
<!ELEMENT preise (preis+)>
<!ELEMENT preis (#PCDATA)>
<!ATTLIST preis id ID #REQUIRED>
]>
<preise>
<preis id="a0">./.</preis>
<preis id='100'>136,10</preis>
<preis id='101'>163,32</preis>
</preise>
и используйте это без апострофов
<xi:include href="../listen/preise.xml#xpointer(/preise/preis[@id=100]/text())" />
вдруг все работает.
Так что проблема, похоже, связана с апострофами, но как мне обойти это?
Также, вот моя информация о версии xmllint:
xmllint: using libxml version 20706
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