2009-12-29 41 views
0

我有兩個不同的XML文件(準確地說是IzPack安裝),它是一個公共部分。當然,我想將這個通用部分保存在一個(外部)文件中,並將其包含到兩個XML安裝文件中。XML XInclude和兩個同名的元素

我無法使它工作,因爲看起來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"/> 

+0

難道不是'它是什麼解析=「文本」XInclude參數是什麼? – Demiurg 2009-12-29 08:37:20

+0

@Demiurg:是的,應該是這樣的。你的XML與xinclude是什麼樣的? – 2009-12-29 08:41:05

+0

\t \t Demiurg 2009-12-29 08:52:04

回答

0

請問你xinclude樣子?您是否嘗試過parse=text

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

所以用這個,你應該能有你的文件1是這樣的:

<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> 
+0

是的,我試着解析=「文本」 - 沒有運氣。 我開始認爲這是一個在IzPack中的錯誤,雖然它使用了javax.xml – Demiurg 2009-12-29 08:50:28