我正在写XSL,我想在整个代码中做出评论,当它被处理时会被剥离,比如PHP,但是我不知道如何。如何评论XSLT而不是HTML
我知道评论对象,但它处理时会打印出HTML注释。 :\
<xsl:comment>comment</xsl:comment>
我正在写XSL,我想在整个代码中做出评论,当它被处理时会被剥离,比如PHP,但是我不知道如何。如何评论XSLT而不是HTML
我知道评论对象,但它处理时会打印出HTML注释。 :\
<xsl:comment>comment</xsl:comment>
您可以使用标准的XML注释:
<!-- Comment -->
这些不是由XSLT转换处理。
当然。阅读http://www.w3.org/TR/xslt#built-in-rule然后应明白为什么这个简单的样式表(嗯,应该)你想要什么:
<?xml version="1.0"?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="comment()">
<xsl:copy/>
</xsl:template>
<xsl:template match="text()|@*"/>
</xsl:stylesheet>
尝试:
<xsl:template match="/">
<xsl:for-each select="//comment()">
<SRC_COMMENT>
<xsl:value-of select="."/>
</SRC_COMMENT>
</xsl:for-each>
</xsl:template>
or use a <xsl:comment ...> instruction for a more literal duplication of the source document content in place of my <SRC_COMMENT> tag.
只要确保你把你的<!-- comments -->
AFTER开放XML声明(如果你使用一个,你真的不需要):
个游:
<!-- a comment -->
<?xml version="1.0"?>
WORKS:
<?xml version="1.0"?>
<!-- a comment -->
我划伤了我的脑袋上同样的问题了一下,同时调试别人的XSLT ......似乎是显而易见的,但容易被忽视。
请注意,注释两边的空白可能会在输出流中结束,具体取决于您的XSLT处理器及其处理空白的设置。如果这是您输出的问题,请确保评论被xslt标签括起来。
EG
<xsl:for-each select="someTag">
<xsl:text>"</xsl:text>
<!-- output the id -->
<xsl:value-of select="@id"/>
<xsl:text>"</xsl:text>
</xsl:for-each>
会输出 “someTagID”(缩进选项卡/在注释标记前面的空格是输出)。 若要删除,无论它与左边距齐平,或者将其括起来就像
<xsl:text>"</xsl:text><!-- output the id --><xsl:value-of select="@id"/>
+1正确答案。 – 2010-12-10 16:00:00
完美!谢谢。 – 2010-12-10 16:10:22