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 に ID テンプレートを追加することをお勧めします。

<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 に答える