【发布时间】:2023-03-14 00:51:02
【问题描述】:
我有以下 XML:
<doc>
<ActivityNarrativeInformation>
<ActivityID>123456789</ActivityID>
<ActivityNarrativeInformationID>111111111</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>1</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>She Sells Sea Shells by the Sea Shore and she also</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>123456789</ActivityID>
<ActivityNarrativeInformationID>111111111</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>3</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>triple shot frappuccino, extra hot, with whipped cream in a tall cup </ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>123456789</ActivityID>
<ActivityNarrativeInformationID>111111111</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>2</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>likes to take long walks on the beach while she drinks a</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>987654321</ActivityID>
<ActivityNarrativeInformationID>222222222</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>486</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>It was a dark and stormy night; the rain fell in torrents--except at occasional intervals, when
</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>987654321</ActivityID>
<ActivityNarrativeInformationID>222222222</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>488</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>scene lies), rattling along the housetops, and fiercely agitating the scanty flame of the lamps that
</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>987654321</ActivityID>
<ActivityNarrativeInformationID>222222222</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>487</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>was checked by a violent gust of wind which swept up the streets (for it is in London that our
</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>987654321</ActivityID>
<ActivityNarrativeInformationID>222222222</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>489</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>struggled against the darkness.
</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>55555555</ActivityID>
<ActivityNarrativeInformationID>77777777</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>31921</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>Papa Bear was very big and growly. Mamma Bear was middle-sized and pleasant.
</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>55555555</ActivityID>
<ActivityNarrativeInformationID>77777777</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>31923</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>Papa bear loved to fix things around the house; Mama bear loved to grow flowers in her garden; and, Baby bear loved playing in the yard. They were very happy. </ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>55555555</ActivityID>
<ActivityNarrativeInformationID>77777777</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>31920</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>Once upon a time there were three bears, Papa Bear, Mamma Bear and Baby Bear
</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>55555555</ActivityID>
<ActivityNarrativeInformationID>77777777</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>31922</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>And Baby Bear, well, he was small, and
sometimes he squeaked! They lived in a pretty little house on the edge of the forest
</ActivityNarrativeText>
</ActivityNarrativeInformation>
</doc
我需要将 ActivityNarrativeInformation 元素按 ActivityID 分组并以这样的方式连接 ActivityNarrativeText,使其按 ActivityNarrativeSequenceNumber 排序
我设法使用以下 XPath 查询 (XPath 3.1) 对元素进行排序
sort(//ActivityNarrativeInformation[ActivityID=123456789], (), function($ActivityNarrativeSequenceNumber) {$ActivityNarrativeSequenceNumber})
所以结果是这样的:
<ActivityNarrativeInformation>
<ActivityID>123456789</ActivityID>
<ActivityNarrativeInformationID>111111111</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>1</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>She Sells Sea Shells by the Sea Shore and she also</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>123456789</ActivityID>
<ActivityNarrativeInformationID>111111111</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>2</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>likes to take long walks on the beach while she drinks a</ActivityNarrativeText>
</ActivityNarrativeInformation>
<ActivityNarrativeInformation>
<ActivityID>123456789</ActivityID>
<ActivityNarrativeInformationID>111111111</ActivityNarrativeInformationID>
<ActivityNarrativeSequenceNumber>3</ActivityNarrativeSequenceNumber>
<ActivityNarrativeText>triple shot frappuccino, extra hot, with whipped cream in a tall cup </ActivityNarrativeText>
</ActivityNarrativeInformation>
然而问题是,如果我想通过在末尾添加/ActivityNarrativeText 来限制所有ActivityNarrativeText,就像这样
sort(//ActivityNarrativeInformation[ActivityID=123456789], (), function($ActivityNarrativeSequenceNumber) {$ActivityNarrativeSequenceNumber})/ActivityNarrativeText
或
sort(//ActivityNarrativeInformation[ActivityID=123456789]/ActivityNarrativeText, (), function($seq) {$seq/ActivityNarrativeSequenceNumber})
订单丢失:
<ActivityNarrativeText>She Sells Sea Shells by the Sea Shore and she also</ActivityNarrativeText>
<ActivityNarrativeText>triple shot frappuccino, extra hot, with whipped cream in a tall cup </ActivityNarrativeText>
<ActivityNarrativeText>likes to take long walks on the beach while she drinks a</ActivityNarrativeText>
我做错了什么?
【问题讨论】: