gpt4 book ai didi

xpath - 如何选择以下 sibling ,直到某个 sibling

转载 作者:行者123 更新时间:2023-12-03 16:14:15 28 4
gpt4 key购买 nike

我目前正在使用已使用自定义 xml 转换器转换为 xml 的 VDA 消息类型。但是,源文档中的每个标题和行记录都处于同一级别,如下面的示例所示:

<root>
<row>
<Record_type>512</Record_type>
<Customer_item_Number>A0528406</Customer_item_Number>
<Supplier_item_number>10962915</Supplier_item_number>
</row>
<row>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</row>
<row>
<Record_type>513</Record_type>
<Date>190306</Date>
<Quantity>97</Quantity>
</row>
<row>
<Record_type>512</Record_type>
<Customer_item_Number>A0528433</Customer_item_Number>
<Supplier_item_number>10962916</Supplier_item_number>
</row>
<row>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</row>
<row>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</row>
<row>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</row>
<row>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</row>
</root>

(512) 记录类型是标题,下面的 (513) 记录类型是它上面的前面 (512) 记录的行。

我正在努力格式化此消息,以便行 (513) 在每个标题 (512) 记录下方缩进。

即所需的输出,类似这样的东西。
<root>
<Header>
<Record_type>512</Record_type>
<Customer_item_Number>A0528406</Customer_item_Number>
<Supplier_item_number>10962915</Supplier_item_number>
<Line>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</Line>
<Line>
<Record_type>513</Record_type>
<Date>190306</Date>
<Quantity>97</Quantity>
</Line>
</Header>
<Header>
<Record_type>512</Record_type>
<Customer_item_Number>A0528433</Customer_item_Number>
<Supplier_item_number>10962916</Supplier_item_number>
<Line>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</Line>
<Line>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</Line>
<Line>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</Line>
<Line>
<Record_type>513</Record_type>
<Date>170306</Date>
<Quantity>115</Quantity>
</Line>
</Header>
</root>

我在使用以下 sibling 方面取得了一些成功,但我无法将其与前 sibling 联系起来,以便在下一个循环之前仅过滤掉所需的记录。

我希望有人能够提供帮助。 :)

最佳答案

在 XQuery 3.1 中,您可以使用滚动窗口 https://www.w3.org/TR/xquery-31/#id-tumbling-windows :

<root>
{
for tumbling window $record in root/row
start $s when $s/Record_type = 512
return
<Header>
{
head($record)/*,
tail($record) !
<Line>
{ * }
</Line>
}
</Header>
}
</root>

https://xqueryfiddle.liberty-development.net/gWcDMef

关于xpath - 如何选择以下 sibling ,直到某个 sibling ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51157830/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com