XSLT вывод html-тегов из XML
у меня есть XML-документ, как:
<tag>
<content>adsfasdf<b>asdf</b></content>
</tag>
Я хотел бы, чтобы XSLT выбрал элемент содержимого и показал все содержимое:
<xsl:value-of select="/tag/content"/>
XSLT настроен для отображения в формате HTML. Есть ли способ получить значение / copy-of для отображения точного содержимого без необходимости его рендеринга?
то, что я ищу-это
asdfasdf<b>asdf</b>
и
asdfasdf asdf
3 ответов
вам нужно избежать имен тегов в содержимом, я бы рекомендовал что-то вроде:
<xsl:template match="content//*">
<xsl:value-of select="concat('<',name(),'>')"/>
<xsl:apply-templates/>
<xsl:value-of select="concat('</',name(),'>')"/>
</xsl:template>
который вы затем можете вызвать с:
<xsl:apply-templates select="/tag/content"/>
быстрый и грязный способ:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="content">
<xsl:copy-of select="text() | *"/>
</xsl:template>
</xsl:stylesheet>
результат против вашего образца будет:
adsfasdf<b>asdf</b>
другой подход:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="b">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Я хотел бы, чтобы XSLT выбрал элемент content и показать все содержание:
<xsl:value-of select="/tag/content"/>
XSLT настроен для отображения как ФОРМАТ HTML. Есть ли способ, которым я могу воспользоваться? значение-of / copy-of для отображения точное содержимое без необходимости рендеринга это?
то, что я ищу-это
asdfasdf<b>asdf</b>
и
asdfasdf asdf
ответ @Nick-Jones приходит ближе всего к тому, что ты хочешь.
посмотрите на таблицу стилей XSLT, которая является частью XPath Визуализатор для обширного примера, как можно создать складное отображение любого XML-документа в стиле IE.