【发布时间】:2021-11-29 12:11:54
【问题描述】:
我是 XSLT 的新手,挑战以下要求:
来源:
<item>
<name>123-foo</name>
<value>xxx</value>
</item>
<item>
<name>123-bar</name>
<value>yyy</value>
</item>
<item>
<name>456-foo</name>
<value>zzz</value>
</item>
<item>
<name>456-bar</name>
<value>aaa</value>
</item>
应该是这样的:
<item>
<key>123</key>
<control>foo</control>
<value>xxx</value>
</item>
<item>
<key>123</key>
<control>bar</control>
<value>yyy</value>
</item>
<item>
<key>456</key>
<control>foo</control>
<value>zzz</value>
</item>
<item>
<key>456</key>
<control>bar</control>
<value>aaa</value>
</item>
附加要求:应跳过列表的前两项。
在第二步中,这些项目应该按键分组。
<xsl:for-each-group select="*" group-by="key">
<!-- do something with each grouped item -->
</xsl:for-each-group>
我怎样才能做到这一点?我已经有一个名为 $data 的变量来获取每个源项的值。
示例:<xsl:value-of select="$data/123-foo"></xsl:value-of> 将输出“xxx”,但我不确定这是否有帮助。
【问题讨论】:
标签: xslt xslt-2.0 xslt-grouping