Как выбрать все узлы комментариев в файле XML? - PullRequest
4 голосов
/ 01 октября 2010

Простой вопрос.У меня есть XML-файл с несколькими десятками блоков комментариев.Это преобразуется таблицей стилей для создания HTML-страницы.Тем не менее, комментарии игнорируются с этим.Но в нижней части сгенерированного HTML я хотел бы иметь список всех комментариев в файле XML.Возможно ли это даже без использования чего-либо еще, кроме чистого XSLT?(Нет Javascript или чего-то еще!)


Насколько я знаю, это невозможно, но я могу ошибаться ...

1 Ответ

10 голосов
/ 01 октября 2010

Причина, по которой комментарии не обрабатываются, заключается в том, что шаблон по умолчанию для комментариев ничего не делает:

<xsl:template match="processing-instruction()|comment()"/>

См. XSLT 1.0 spec "Встроенные правила шаблонов" .

Если вы хотите сделать что-то еще с комментариями, вы можете просто создать свой собственный соответствующий шаблон и вывести их в виде нового XML-комментария, используя xsl:comment, или создать список HTML:

<xsl:template match="/">
  <ul>
    <xsl:apply-templates select="//comment()"/>
  </ul>
</xsl:template>

<xsl:template match="comment()">
  <li>
    <xsl:value-of select="."/>
  </li>
</xsl:template>
...