我有一个XML文件,如下所示......
<states>
<state>
<name>North Carolina</name>
<city>Charlotte</city>
</state>
<state>
<name>Alaska</name>
<city>Fairbanks</city>
</state>
<state>
<name>Virginia</name>
<city>Leesburg</city>
</state>
<state>
<name>Alaska</name>
<city>Coldfoot</city>
</state>
<state>
<name>North Carolina</name>
<city>Harrisburg</city>
</state>
<state>
<name>Virginia</name>
<city>Ashburn</city>
</state>
</states>
Run Code Online (Sandbox Code Playgroud)
我需要生成一份列出每个州的报告,按照每个城市的字母顺序排列......例如..
Alaska - Fairbanks, Coldfoot
North Carolina - Charlotte, Harrisburg
Virginia - Leesburg, Ashburn
Run Code Online (Sandbox Code Playgroud)
(城市不必按照alpha顺序排列,只需要按州规定)
我尝试通过对状态/状态执行for-each,按名称对其进行排序并对其进行处理来解决此问题.像这样....
<xsl:for-each select="states/state">
<xsl:sort select="name" data-type="text" order="ascending"/>
<xsl:value-of select="name"/>-<xsl:value-of select="city"/>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
这给了我......
Alaska - Fairbanks
Alaska - Coldfoot
North Carolina - Charlotte
North Carolina - Harrisburg
Virginia - Leesburg
Virginia - Ashburn
Run Code Online (Sandbox Code Playgroud)
排序工作,现在我想分组.我唯一能想到的就是比较之前的状态,因为它已经排序,它应该识别状态值是否没有改变.像这样...
<xsl:for-each select="states/state">
<xsl:sort …Run Code Online (Sandbox Code Playgroud)