2010-10-01 5 views
4

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


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

ответ

10

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

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

См. XSLT 1.0 spec "Built-in Template Rules".

Если вы хотите сделать что-то еще с комментариями, вы можете просто создать свой собственный шаблон и выводить их либо как новый 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> 
+1

Я был просто чтобы дать тот же ответ ... Возможно, вы захотите упомянуть, хотя вы можете использовать элемент ** xsl: comment ** (а не ** li ** в вашем примере), если вы все еще хотите вывести исходный комментарий XML как комментарий в HTML. –

+1

@Tim C: Прочтите мой ответ еще раз, я думаю, вы пропустили линию! ;) –

+0

D'oh! Виноват! Если бы я мог понизить свой комментарий, я бы! –

Смежные вопросы