我需要一個可轉換以下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實例的文本值的每一行。這很容易導致重複。 –