我正在尝试让XSLT转换为像
这样的东西<foo>
lorem ipsum
<br />
some more lorem ipsum
</foo>
进入
<p>
lorem ipsum
<br />
some more lorem ipsum
</p>
我为
的select属性尝试过无数路径<p><xsl:value-of select="/foo/*" /></p>
但他们似乎都没有工作。是否有可能将元素的所有子元素都作为纯文本?
答案 0 :(得分:3)
您可以使用xsl:copy-of
:
<p><xsl:copy-of select="/foo/node()" /></p>
但更好的方法是在XSLT中添加一个身份模板:
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
然后利用它:
<p><xsl:apply-templates select="/foo/node()" /></p>
答案 1 :(得分:0)
如果以下内容适合您,请与我们联系:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="item/foo">
<p>
<xsl:value-of select="current()"/>
</p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
使用此XML进行测试:
<?xml version="1.0" encoding="ISO-8859-1"?>
<item>
<foo>
lorem ipsum
<br />
some more lorem ipsum
</foo>
<foo>
lorem ipsum
<br />
some more lorem ipsum
</foo>
</item>