我有2個包含類似XML的文檔對象。例如:在保留xsi的同時合併文檔:類型
<tt:root xmlns:tt="http://myurl.com/">
<tt:child/>
<tt:child/>
</tt:root>
而另外一個:
<ns1:root xmlns:ns1="http://myurl.com/" xmlns:ns2="http://myotherurl.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:child/>
<ns1:child xsi:type="ns2:SomeType"/>
</ns1:root>
我需要將它們與1個元素和4個個子元素合併到1號文件。 問題是,如果我使用document.importNode
函數進行合併,那麼它正確地處理名稱空間到處都是,但是xsi:type元素。那麼我得到的結果是這樣的:
<tt:root xmlns:tt="http://myurl.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tt:child/>
<tt:child/>
<ns1:child xmlns:ns1="http://myurl.com/"/>
<ns1:child xmlns:ns1="http://myurl.com/" xsi:type="ns2:SomeType"/>
</tt:root>
正如你可以看到,NS2是在xsi:type
使用,但不被任何定義。有沒有自動化的方法來解決這個問題?
謝謝。
新增:
如果這個任務是不可能使用默認的Java DOM庫來完成的,也許有我可以用它來完成我的任務了一些其他圖書館?
你有沒有用'deep'參數玩過這個工作對我來說,當我的合併文檔是失蹤的xmlns in'importNode'已經?也許你需要'deep = true'來正確地導入屬性節點。 – 2011-06-01 08:56:55
是的,我使用deep = true,但這沒有幫助。它似乎只是簡單地將xsi:type屬性解析爲一個簡單的字符串參數,而不是一個類型參數。 – bezmax 2011-06-01 10:07:00
您的第二個文檔不是名稱空間,因爲它使用的前綴「xsi」尚未綁定。 – alexbrn 2011-06-01 10:56:10