1

我正在尝试使用 XSLT 根据它在 XML 中找到的组数生成一个动态类。例如,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 回答