XSLT並べ替えと各グループへの一意の番号の割り当て:並べ替え後に、グループごとに一意の番号を並べ替えて割り当てたいと思います。xsltに基づいて<Type>
&を使用してソートします。<Location>
期待される入出力については、以下を参照してください。
入力XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:Payload xmlns:ns1="http://abcd.ef.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:Detail>
<ns1:ID>141414</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1214</ns1:Location>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>151515</ns1:ID>
<ns1:Type>MT</ns1:Type>
<ns1:Location>1215</ns1:Location>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>313131</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1213</ns1:Location>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>123123</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1213</ns1:Location>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>123123</ns1:ID>
<ns1:Type>MM</ns1:Type>
<ns1:Location>1213</ns1:Location>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>112233</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1211</ns1:Location>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>112334</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1211</ns1:Location>
</ns1:Detail>
</ns1:Payload>
出力XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:Payload xmlns:ns1="http://abcd.ef.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:Detail>
<ns1:ID>112233</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1211</ns1:Location>
<ns1:MsgGroup>1</ns1:MsgGroup>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>112334</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1211</ns1:Location>
<ns1:MsgGroup>1</ns1:MsgGroup>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>313131</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1213</ns1:Location>
<ns1:MsgGroup>2</ns1:MsgGroup>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>123123</ns1:ID>
<ns1:Type>SS</ns1:Type>
<ns1:Location>1213</ns1:Location>
<ns1:MsgGroup>2</ns1:MsgGroup>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>123123</ns1:ID>
<ns1:Type>MM</ns1:Type>
<ns1:Location>1213</ns1:Location>
<ns1:MsgGroup>3</ns1:MsgGroup>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>141414</ns1:ID>
<ns1:Type>MT</ns1:Type>
<ns1:Location>1214</ns1:Location>
<ns1:MsgGroup>4</ns1:MsgGroup>
</ns1:Detail>
<ns1:Detail>
<ns1:ID>151515</ns1:ID>
<ns1:Type>MT</ns1:Type>
<ns1:Location>1214</ns1:Location>
<ns1:MsgGroup>4</ns1:MsgGroup>
</ns1:Detail>
</ns1:Payload>