2009-08-27 50 views
6

有一個使用包含前綴和默認命名空間的命名空間的源xml文檔。當我使用XSLT文檔對其進行轉換時,生成的已轉換的xml文檔不正確,即源xml文檔中的元素數據缺失。XSLT出現問題,其中源xml文檔使用默認命名空間

當我從源xml文檔中刪除「默認命名空間」時,轉換按預期工作。

問題:有沒有一種方法可以解決問題,而無需從源xml文檔編輯默認名稱空間?也就是說,將解決方案添加到XSLT文檔中。

XML文檔:

<MyElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://www.zolldata.com/UDX"> 

問題出在哪裏默認命名空間是的xmlns = 「http://www.zolldata.com/UDX」

回答

4

指定XSLT文件中相同的默認命名空間,如果你選擇做不使用前綴或爲XSLT中的所有選擇器使用前綴,但不要忘記將它們綁定到XML文檔的默認名稱空間。

+1

我會將默認名稱空間xmlns =「http://www.zolldata.com/UDX」添加到我的XSLT文檔中。 我會如何綁定?我綁定什麼? – Larry 2009-08-27 21:45:40

+0

我嘗試了你的第一個建議,但這不起作用。它看起來默認的命名空間必須從XML中移除,以便XSLT能夠正常工作(或正確地前綴)。像拉里一樣,我不知道你的意思是「......不要忘記將它們綁定到默認的命名空間」。我假設這意味着它的前綴實際上是以「xmlns:z = ...」作爲前綴,這隻有在您要更改xml響應而不是必須處理有效使用默認命名空間的現有系統時纔有效。 – Justin 2012-05-30 17:48:02