2013-10-07 53 views
0

我正在轉換一些嵌入了mathml的xml。我們要去的目標xml文件不支持mathml。我想在註釋塊中輸出該mathml,以便mathml不會丟失,但也不會導致對目標dtd的驗證錯誤。xsl將元素的所有子元素置於註釋塊中

我嘗試了:

<xsl:comment><xsl:copy-of select="*"/></xsl:comment> 

但是,這並不十分去做。

任何幫助,非常感謝!

感謝,

拉斯

+0

順便說一句,完整的模板是: \t的 \t \t \t \t 式放在這裏 \t \t \t \t \t的 \t \t \t \t \t \t \t \t \t

+0

使用XML註釋來保留內容是一個壞主意。許多解析器和工具將完全忽視評論。 –

+0

我知道。我只是試圖爲圖形用戶保留這些信息,因爲他們可以使用它來創建方程式作爲外部圖形。 –

回答

1

XSLT spec說:

這是一個錯誤,如果實例的xsl:comment內容創建一個比文本節點的其他節點。

一種可能的解決辦法是使用disable-output-escaping創建註釋:

<xsl:text disable-output-escaping="yes">&lt;!--</xsl:text> 
<xsl:copy-of select="*"/> 
<xsl:text disable-output-escaping="yes">--&gt;</xsl:text> 
+0

酷!這就是訣竅!謝謝! –

+1

既然他幫了你,爲什麼不接受他的回答呢?還要考慮回顧一下你過去的14個問題,並接受你收到的任何其他有用答案;那裏至少有幾個可以接受的答案。以下是接受答案的方式:http://meta.stackexchange.com/a/5235/234215 – kjhughes

+0

順便說一下,該報價來自XSLT 1.0規範。在XSLT 2.0中,xsl:comment的作用類似於xsl:value-of - 如果內容中有元素節點,則使用它們的字符串值。 –