我有一个类似于的XML文档:
<tag> <content>adsfasdf<b>asdf</b></content> </tag>
我想让XSLT选择内容元素并显示所有内容:
<xsl:value-of select="/tag/content"/>
XSLT配置为呈现为HTML . 有没有办法让我可以获得值/副本来显示确切的内容而无需渲染它?
我正在寻找的是
asdfasdf<b>asdf</b>
并不是:
asdfasdf asdf
您需要转义内容中的标记名称,我建议如下:
<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选择内容元素并显示所有内容:<xsl:value-of select =“/ tag / content”/>XSLT配置为呈现为HTML . 有没有办法让我可以获得值/副本来显示确切的内容而无需渲染它?我正在寻找的是asdfasdf <b> asdf </ b>而不是:asdfasdf asdf
@ Nick-Jones的答案最接近你想要的 .
请查看作为 XPath Visualizer 一部分的XSLT样式表,以获取如何生成任何XML文档的IE样式可折叠显示的广泛示例 .
3 回答
您需要转义内容中的标记名称,我建议如下:
然后你可以打电话给:
快速而肮脏的方式:
针对您的样本的结果将是:
另一种方法:
@ Nick-Jones的答案最接近你想要的 .
请查看作为 XPath Visualizer 一部分的XSLT样式表,以获取如何生成任何XML文档的IE样式可折叠显示的广泛示例 .