首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括具有xpointer element()方案子元素

包括具有xpointer element()方案子元素
EN

Stack Overflow用户
提问于 2014-10-03 20:14:36
回答 2查看 1.6K关注 0票数 1

我尝试使用xi:include将元素的所有子元素(部分)从a.xml包含到b.xml中。这两个XML文件都是有效的docbook 5文件。

a.xml

代码语言:javascript
复制
<chapter xml:id="TheChapter">
    <section>
        <title>section 1</title>
    </section>
    <section>
        <title>section 2</title>
    </section>
    <section>
        <title>section 3</title>
    </section>
</chapter>

b.xml

代码语言:javascript
复制
<section>
      <xi:include href="a.xml" xpointer="element(/TheChapter/*)"/>
</section>

我使用的是报告错误的XMLMind。

代码语言:javascript
复制
cannot parse inclusion directive: cannot parse XPointer "element(/TheChapter/*)": "/TheChapter/*", XPointer element() scheme syntax error

我使用element()方案是不是不正确?

EN

回答 2

Stack Overflow用户

发布于 2014-10-05 18:57:29

您对element()方案的使用不正确。

通过ID标识元素的表达式的第一部分不应以正向符号(

  • *)开头不能使用。“子序列”只能包含正斜杠和数字。

这是一个有效的表达式:

代码语言:javascript
复制
element(TheChapter/1)

它将选择由TheChapter ID标识的元素的第一个子元素。使用element()方案无法完成您想要的操作。

您可以使用xpointer()方案:

代码语言:javascript
复制
xpointer(id('TheChapter')/*)

xpointer()方案从未成为W3C推荐标准(它仍然只是一个草案),也没有得到广泛的实现。

XMLmind XML编辑器不支持xpointer()的一个子集。这里有一个邮件列表帖子,里面有更多细节:http://permalink.gmane.org/gmane.editors.xxe.general/10220

票数 3
EN

Stack Overflow用户

发布于 2014-10-09 17:03:38

以下用法可以很好地工作:

代码语言:javascript
复制
<xi:include href="a.xml" xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('TheChapter')/db:section)"/>

代码语言:javascript
复制
<xi:include href="a.xml" xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('TheChapter')/*)"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26178742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档