私は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 -->
を入れていることを確認してくださいオープニングXML宣言(あなたが本当に必要としないものを、使用している場合):
BREAKS:
<!-- 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正解です。 –
パーフェクト!ありがとうございました。 –