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
现在,如果我将价目表中 id 的格式更改为完全数字
<?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