同じ属性値を持ちながら内容が異なる兄弟ノードを含むXMLがあります。これは以下のように、親と子のレベルの両方で発生します。親ノードが特定の(未知の)値を持つ子ノードを結合するXSLT
<myxml>
<a myattr="valuetop1">
<b myattr="valuechild1">
<c>Stuff1</c>
<c>Stuff2</c>
</b>
</a>
<a myattr="valuetop1">
<b myattr="valuechild2">
<c>Stuff3</c>
</b>
</a>
<a myattr="valuetop1">
<b myattr="valuechild2">
<c>Stuff4</c>
</b>
</a>
<a myattr="valuetop1">
<b myattr="valuechild2">
<c>Stuff5</c>
<c>Stuff6</c>
</b>
</a>
<a myattr="valuetop2">
<b myattr="valuechild1">
<c>Stuff1</c>
</b>
</a>
<a myattr="valuetop2">
<b myattr="valuechild3">
<c>Stuff2</c>
</b>
</a>
<a myattr="valuetop2">
<b myattr="valuechild2">
<c>Stuff3</c>
<c>Stuff2</c>
</b>
</a>
<a myattr="valuetop2">
<b myattr="valuechild2">
<c>Stuff4</c>
</b>
</a>
</myxml>
同じレベルに存在し、同一の属性値を持つノードが存在する場合、私はそのノードの単一のインスタンスの下にその内容をまとめたいです。言い換えれば、私はこのようなきちんとした階層を探しています:
<myxml>
<a myattr="valuetop1">
<b myattr="valuechild1">
<c>Stuff1</c>
<c>Stuff2</c>
</b>
<b myattr="valuechild2">
<c>Stuff3</c>
<c>Stuff4</c>
<c>Stuff5</c>
<c>Stuff6</c>
</b>
</a>
<a myattr="valuetop2">
<b myattr="valuechild1">
<c>Stuff1</c>
</b>
<b myattr="valuechild3">
<c>Stuff2</c>
</b>
<b myattr="valuechild2">
<c>Stuff3</c>
<c>Stuff2</c>
<c>Stuff4</c>
</b>
</a>
</myxml>
キャッチは私はvaluetopxまたはvaluechildxの値はがどうなるか分からないということです。私は数日間この頭の上に頭を叩いていましたが、その周りに私の脳を得ることはできません。
[**なぜ「それのまわりで私の脳を取得することはできません実際の質問ではありませんか?**](https://meta.stackoverflow.com/q/284236/290085) – kjhughes
ここに実際にあるのは、グループ化の問題です。 XSLT 1.0を使用している場合は、Muenchian Grouping(http://www.jenitennison.com/xslt/grouping/muenchian.htmlを参照)で読んでください。 XSLT 2.0を使用している場合は、xsl:for-each-groupを読んでください。 –
@TimCまともな答えのようです。あなたは1つを作りたいですか?私は未回答の質問のリストからこれを得ることに感謝します。 – Yunnosch