Подтвердить что ты не робот

Как прокомментировать XSLT, а не HTML

Я пишу XSL, и я хочу комментировать весь код, который будет удален, когда он будет обработан, например PHP, но я не уверен, как это сделать.

Мне известен объект комментария, но он обрабатывает HTML-комментарий при обработке.:\

<xsl:comment>comment</xsl:comment>
4b9b3361

Ответ 1

Вы используете стандартные комментарии XML:

<!-- Comment -->

Они не обрабатываются трансформатором XSLT.

Ответ 2

Просто убедитесь, что вы положили <!-- comments --> ПОСЛЕ открывающего объявления XML (если вы используете тот, который вам действительно не нужен):

BREAKS:

<!-- a comment -->
<?xml version="1.0"?>

РАБОТЫ:

<?xml version="1.0"?>
<!-- a comment -->

Я немного почесал голову на эту же проблему, хотя отладка другого XSLT... кажется очевидным, но легко упускается из виду.

Ответ 3

Обратите внимание, что пробел с обеих сторон комментариев может заканчиваться в потоке вывода, в зависимости от вашего 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"/>

Ответ 4

Конечно. Прочитайте 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.