Problème frustrant avec XInclude/XPointer ici.L'URL XPointer n'est pas résolue lors de l'adressage des valeurs @id encapsulées dans un apostrophe
L'objectif est d'inclure des entrées d'une liste d'entrées de prix au format XML dans un autre document. J'ai un document avec une liste des prix qui ressemble à ceci:
<?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>
Voici incluent tombe en panne
<xi:include href="../listen/preise.xml#xpointer(/preise/preis[@id='foo100']/text())" />
avec
element include: XInclude error : failed build URL
Maintenant, si je change le format des ids dans la liste de prix à être exclusivement numérique
<?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>
et utiliser ce sans inclure les apostrophes
<xi:include href="../listen/preise.xml#xpointer(/preise/preis[@id=100]/text())" />
soudainement tout fonctionne. Donc, la question semble être liée aux apostrophes, mais comment puis-je contourner cela?
Aussi, voici ma version xmllint info:
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
Bonne question, +1. Voir ma réponse pour une explication et une solution proposée. –