次のような XML ファイルがあります。
<doc>
<element>
<word>
<text>one word</text>
</word>
<word>
<text>two words</text>
</word>
</element>
<element>
<other>
<text>the sky</text>
</other>
<word>
<text>NN NN</text>
</word>
</element>
</doc>
そして、次のように、タグが 1 つだけあり、2 つの行が続いている場合はその行の内容が必要です。
<element>
<word>
<text>one word</text>
<text>two words</text>
</word>
</element>
問題は、タグ<xsl:element>
を取得するために を生成していることです。<word>
そして、これ<xsl:element>
はすでにタグを正しい順序で配置する<xsl:for-each>
ループ内にあり<word>
ます (属性のフィルタリング)。
私の以前のXMLドキュメントは次のようなものです:
<doc>
<element class="word">
<text>one word</text>
</element>
<element class="word">
<text>NN NN</text>
</element>
<element class="word">
<text>two words</text>
</element>
<element class="other">
<text>the sky</text>
</element>
</doc>
どんな助けでも素晴らしいでしょう、ありがとう:)
-- 詳細 --
これは私が望む結果です:
<doc>
<element>
<word>
<text>one word</text>
<text>two words</text>
</word>
</element>
<element>
<other>
<text>the sky</text>
</other>
<word>
<text>NN NN</text>
</word>
</element>
</doc>
また、タグの閉じたリストがないため、タグの単語などを指定できません。だから私はxsl:variableを使用しています:
<xsl:for-each select="element">
<xsl:variable name="name">
<xsl:value-of select="@class"/>
</xsl:variable>
<xsl:element name="{$name}">
<text>
<xsl:value-of select="."/>
</text>
</xsl:element>
</xsl:for-each>