次のような入力 XML があります。
<Results>
<School>
<Name>A</Name>
<Location>
<StreetAddress>abc</StreetAddress>
<Distance>5</Distance>
</Location>
<Location>
<StreetAddress>def</StreetAddress>
<Distance>3</Distance>
</Location>
<Location>
<StreetAddress>xyz</StreetAddress>
<Distance>6</Distance>
</Location>
</School>
<School>
<Name>B</Name>
<Location>
<StreetAddress>abc1</StreetAddress>
<Distance>7</Distance>
</Location>
<Location>
<StreetAddress>def2</StreetAddress>
<Distance>6</Distance>
</Location>
<Location>
<StreetAddress>xyz3</StreetAddress>
<Distance>2</Distance>
</Location>
</School>
<School>
<Name>C</Name>
<Location>
<StreetAddress>abc4</StreetAddress>
<Distance>2</Distance>
</Location>
<Location>
<StreetAddress>def5</StreetAddress>
<Distance>1</Distance>
</Location>
<Location>
<StreetAddress>xyz6</StreetAddress>
<Distance>0.5</Distance>
</Location>
</School>
XSL v1 を使用して、場所ノードを距離で並べ替え、次に学校を最小距離で並べ替える必要があります。基本的に、出力は次のようになります。
<Results>
<School>
<Name>C</Name>
<Location>
<StreetAddress>xyz6</StreetAddress>
<Distance>0.5</Distance>
</Location>
<Location>
<StreetAddress>def5</StreetAddress>
<Distance>1</Distance>
</Location>
<Location>
<StreetAddress>abc4</StreetAddress>
<Distance>2</Distance>
</Location>
</School>
<School>
<Name>B</Name>
<Location>
<StreetAddress>xyz3</StreetAddress>
<Distance>2</Distance>
</Location>
<Location>
<StreetAddress>def2</StreetAddress>
<Distance>6</Distance>
</Location>
<Location>
<StreetAddress>abc1</StreetAddress>
<Distance>7</Distance>
</Location>
</School>
<School>
<Name>A</Name>
<Location>
<StreetAddress>def</StreetAddress>
<Distance>3</Distance>
</Location>
<Location>
<StreetAddress>abc</StreetAddress>
<Distance>5</Distance>
</Location>
<Location>
<StreetAddress>xyz</StreetAddress>
<Distance>6</Distance>
</Location>
</School>
これを行うには、最初に距離に基づいてノードを並べ替え、それらを変数に格納してから、/Results/School/Location[1]/Distance で再度並べ替えます。
これらすべてを一度に実行する方法があるかどうか疑問に思っています。
あなたの助けに感謝。