1

我试图让 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>

但它们似乎都不起作用。甚至可以将元素的所有子元素作为纯文本获取吗?

4

2 回答 2

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>
于 2013-04-04T19:24:45.523 回答
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>
于 2013-04-04T19:48:48.697 回答