我正在转换一些嵌入了mathml的xml。我们要去的目标xml文件不支持mathml。我想在注释块中输出该mathml,以便mathml不会丢失,但也不会导致对目标dtd的验证错误。xsl将元素的所有子元素置于注释块中
我尝试了:
<xsl:comment><xsl:copy-of select="*"/></xsl:comment>
但是,这并不十分去做。
任何帮助,非常感谢!
感谢,
拉斯
我正在转换一些嵌入了mathml的xml。我们要去的目标xml文件不支持mathml。我想在注释块中输出该mathml,以便mathml不会丢失,但也不会导致对目标dtd的验证错误。xsl将元素的所有子元素置于注释块中
我尝试了:
<xsl:comment><xsl:copy-of select="*"/></xsl:comment>
但是,这并不十分去做。
任何帮助,非常感谢!
感谢,
拉斯
的XSLT spec说:
这是一个错误,如果实例的
xsl:comment
内容创建一个比文本节点的其他节点。
一种可能的解决办法是使用disable-output-escaping
创建注释:
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
<xsl:copy-of select="*"/>
<xsl:text disable-output-escaping="yes">--></xsl:text>
酷!这就是诀窍!谢谢! –
既然他帮了你,为什么不接受他的回答呢?还要考虑回顾一下你过去的14个问题,并接受你收到的任何其他有用答案;那里至少有几个可以接受的答案。以下是接受答案的方式:http://meta.stackexchange.com/a/5235/234215 – kjhughes
顺便说一下,该报价来自XSLT 1.0规范。在XSLT 2.0中,xsl:comment的作用类似于xsl:value-of - 如果内容中有元素节点,则使用它们的字符串值。 –
顺便说一句,完整的模板是: \t的 \t \t \t \t 式放在这里 XSL:发表评论> \t \t 的 XSL:评论> \t \t \t的 \t \t \t \t \t \t ImageObject> \t \t InlineEquation> \t xsl:template> –
使用XML注释来保留内容是一个坏主意。许多解析器和工具将完全忽视评论。 –
我知道。我只是试图为图形用户保留这些信息,因为他们可以使用它来创建方程式作为外部图形。 –