Ответ 1
Вы используете стандартные комментарии XML:
<!-- Comment -->
Они не обрабатываются трансформатором XSLT.
Я пишу XSL, и я хочу комментировать весь код, который будет удален, когда он будет обработан, например PHP, но я не уверен, как это сделать.
Мне известен объект комментария, но он обрабатывает HTML-комментарий при обработке.:\
<xsl:comment>comment</xsl:comment>
Вы используете стандартные комментарии XML:
<!-- Comment -->
Они не обрабатываются трансформатором XSLT.
Просто убедитесь, что вы положили <!-- comments -->
ПОСЛЕ открывающего объявления XML (если вы используете тот, который вам действительно не нужен):
BREAKS:
<!-- a comment -->
<?xml version="1.0"?>
РАБОТЫ:
<?xml version="1.0"?>
<!-- a comment -->
Я немного почесал голову на эту же проблему, хотя отладка другого XSLT... кажется очевидным, но легко упускается из виду.
Обратите внимание, что пробел с обеих сторон комментариев может заканчиваться в потоке вывода, в зависимости от вашего XSLT-процессора и его настроек для обработки белого пространства. Если это проблема для вашего вывода, убедитесь, что комментарий заключен в скобки с помощью тегов xslt.
Е.Г.
<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"/>
Конечно. Прочитайте 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.