2012-09-30 91 views
0

我正在嘗試使用XSLT將XML轉換爲另一個XML。由於XSLT和我使用的XML更大,我​​無法提供數據。在轉換時,我可以看到「用於屬性名稱的非法值」。在結果XML中,我可以看到一些標籤出現兩次。下面例:xslt轉換過程中「屬性名稱使用的非法值」

<xslt:variable name="index" select="@Index"> 
<xslt:element name="EquipmentID-{$index}"> 
Hello 
</xslt:element> 

在結果中,我得到的結果是,

<EquipmentID-EquipmentID-1> 
Hello 
</EquipmentID-Equipment-ID-1> 

,無論我現在用的是$指數,我得到了一些尷尬的值。

有人可以幫助我嗎?

+2

歡迎來到Stack Overflow。當你發佈代碼時,你應該選擇文本並點擊看起來像「{}」的按鈕(或者按下鍵盤上的CTRL + K)來使其格式化。我在這個問題上爲你做了。 –

回答

0

沒有看到更多的代碼和源數據,這是不可能的。你的代碼是完全合理的,並且完全能夠產生你給出的輸出給出合適的輸入(特別是attribtute @Index的值)

0

我知道這是一個非常古老的問題,但這裏是發生在我的情況。

我看到這個相同的錯誤莫名其妙地(即,沒有任何錯誤的屬性名稱,錯誤發生在隨機的地方),事實證明,這是由於Xala轉換同時在不同的線程使用Xalan版本2.7.0,它顯然有一些錯誤,當它應該是它不是完全線程安全的。

我使用的是普通的Templates,但是按線程Source s,Result s和Transformer s。這應該是線程安全的。

不知道到底是什麼錯誤,但無論如何升級到Xalan 2.7.2都解決了這個問題。

相關問題