【问题标题】:XML XInclude and two elements with the same nameXML XInclude 和两个同名元素
【发布时间】:2009-12-29 08:28:48
【问题描述】:

我有两个不同的 XML 文件(确切地说是 IzPack 安装),它们是共同的部分。自然,我想将这个通用部分保存在一个(外部)文件中,并将其包含在两个 XML 安装文件中。

我无法让它工作,因为 XInclude 似乎只能包含带有 XML 元素的文件。为了说明这个例子,这里有一些代码:

文件 1:

<packs>
 <pack name="1">
 ...
 </pack>
 <pack name="2">
 ...
 </pack>
<packs>

文件 2:

<packs>
 <pack name="1">
 ...
 </pack>
 <pack name="2">
 ...
 </pack>
 <pack name="3">
 ...
 </pack>
<packs>

我希望包含的文件只包含

 <pack name="1">
 ...
 </pack>
 <pack name="2">
 ...
 </pack>

但这似乎是不可能的。我错过了什么?

更新: Xinclude 代码如下所示:

<packs>  
  <xi:include xmlns:xi="w3.org/2001/XInclude"; href="browserPacks.xml" parse="text"/>

【问题讨论】:

  • 这不是 parse="text" XInclude 参数的作用吗?
  • @Demiurg:是的,这就是它应该做的。带有 xinclude 的 XML 是什么样的?
  • w3.org/2001/XInclude" href="browserPacks.xml" parse="text"/>
  • @Demiurg:在这些 cmets 中,您无法很好地格式化任何内容 - 请更新您的原始问题,而不是将 XML 之类的内容放入 cmets - 谢谢!

标签: xml xinclude


【解决方案1】:

您的xinclude 看起来如何?你试过parse=text:

 <xi:include href="common.xml" parse="text"
      xmlns:xi="http://www.w3.org/2001/XInclude"/>

因此,您应该可以让您的 file1 看起来像这样:

<packs>
   <xi:include href="common.xml" parse="text"
          xmlns:xi="http://www.w3.org/2001/XInclude"/>
<packs>

你的文件2是这样的:

<packs>
   <xi:include href="common.xml" parse="text"
          xmlns:xi="http://www.w3.org/2001/XInclude"/>
   <pack name="3">
      ....
   </pack>
<packs>

【讨论】:

  • 是的,我试过 parse="text" - 不走运。我开始认为这是 IzPack 中的一个错误,尽管它使用 javax.xml
猜你喜欢
  • 2014-01-20
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多