1

XML で見つかったグループの数に基づいて、XSLT を使用して動的クラスを生成しようとしています。たとえば、XML には X グループがあり、すべて子ノードがあります。リスト内のグループ番号に基づいてクラス名を動的に作成するには、for each ループが必要です。問題なくグループ名を入力できますが、システムで生成された部分をクラスに追加する方法に関する明確な情報が見つかりません。例えば:

  • groupblue クラス = "groupblue-1"
  • grouporange クラス = "grouporange-2"
  • groupred クラス = "groupred-3"

XML 内のすべてのグループについてなど。

これが理にかなっていて、誰かが助けてくれることを願っています! 前もって感謝します。

編集:

XML

<group>
  <title>Title Content</title>
  <text>Content 1</text>
</group>
<group>
  <title>Title Content</title>
  <text>Content 2</text>
</group>
<group>
  <title>Title Content</title>
  <text>Content 3</text>
</group>

HTML出力

<div id="titlecontent-1">
  text from group 1 content
</div>
<div id="titlecontent-2">
  text from group 2 content
</div>
<div id="titlecontent-3">
  text from group 3 content
</div>
4

1 に答える 1

2

この変換:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="group">
     <div id="{translate(title, ' ', '')}-{position()}">
       <xsl:value-of select="text"/>
     </div>
 </xsl:template>
 <xsl:template match="text()"/>
</xsl:stylesheet>

この整形式の XML ドキュメント(提供された XML フラグメントを最上位の要素にラップする)に適用すると、次のようになります。

<t>
    <group>
        <title>Title Content</title>
        <text>Content 1</text>
    </group>
    <group>
        <title>Title Content</title>
        <text>Content 2</text>
    </group>
    <group>
        <title>Title Content</title>
        <text>Content 3</text>
    </group>
</t>

必要な結果を生成します:

<div id="TitleContent-1">Content 1</div>
<div id="TitleContent-2">Content 2</div>
<div id="TitleContent-3">Content 3</div>
于 2012-10-30T12:48:14.963 に答える