我需要一个可转换以下XML的XSLT 1.0。XSLT 1.0对XML进行排序和分组
<Record>
<Row>
<Name>AAA</Name>
<Surname>Surname1</Surname>
</Row>
<Row>
<Name>BBB</Name>
<Surname>Surname2</Surname>
</Row>
<Row>
<Name>CCC</Name>
<Surname>Surname1</Surname>
</Row>
<Row>
<Name>DDD</Name>
<Surname>Surname2</Surname>
</Row>
<Row>
<Name>EEE</Name>
<Surname>Surname1</Surname>
</Row>
<Row>
<Name>FFF</Name>
<Surname>Surname2</Surname>
</Row>
<Row>
<Name>GGG</Name>
<Surname>Surname1</Surname>
</Row>
<Row>
<Name>HHH</Name>
<Surname>Surname2</Surname>
</Row>
</Record>
我期待的输出是:
<Output>
<Recordset1>
<Record>
<Name>AAA</Name>
<Surname>Surname1</Surname>
</Record>
<Record>
<Name>CCC</Name>
<Surname>Surname1</Surname>
</Record>
</Recordset1>
<Recordset1>
<Record>
<Name>EEE</Name>
<Surname>Surname1</Surname>
</Record>
<Record>
<Name>GGG</Name>
<Surname>Surname1</Surname>
</Record>
</Recordset1>
<Recordset2>
<Record>
<Name>BBB</Name>
<Surname>Surname2</Surname>
</Record>
<Record>
<Name>DDD</Name>
<Surname>Surname2</Surname>
</Record>
</Recordset2>
<Recordset2>
<Record>
<Name>FFF</Name>
<Surname>Surname2</Surname>
</Record>
<Record>
<Name>HHH</Name>
<Surname>Surname2</Surname>
</Record>
</Recordset2>
</Output>
的条件是:
Recordset1应该包含Surname1节点
Recordset2应该包含Surname2节点
输出结果应按姓氏排序
每个记录集最多有2条记录。
你想象究竟是什么这样做:'的'? –
这是您之前向我指出的Muenchian方法。我只是简化了它的每个部分,如下所示:对于每个行Surname,找到具有该姓的第一个Row实例。所以,如果当前的行是第一个实例,那么做东西。很好的问题。顺便说一句,这段代码工作得很好。 – Bluewood66
“*对于每个行姓可以找到第一个具有该姓氏的Row实例。*”这不是您的“简化”。它查找**的整个文本值**等于具有该姓氏的第一个Row实例的文本值的每一行。这很容易导致重复。 –