XML XInclude和两个具有相同名称的元素

时间:2009-12-29 08:28:48

标签: xml xinclude

我有两个不同的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"/>

1 个答案:

答案 0 :(得分:0)

您的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>