gpt4 book ai didi

xml - 如何使用 XQuery 提取特定的 XML 记录并以逗号分隔格式输出?

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:36 27 4
gpt4 key购买 nike

我试图只提取 <xref>数据连同他们的图书 ID 使用 XQuery(我是新来的)。

这里是输入数据:

  <book id="6636551">
<master_information>
<book_xref>
<xref type="Fiction" type_id="1">72771KAM3</xref>
<xref type="Non_Fiction" type_id="2">US72771KAM36</xref>
</book_xref>
</master_information>
<book_details>
<price>24.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications with XML.</description>
</book_details>
</book>
<book id="119818569">
<master_information>
<book_xref>
<xref type="Fiction" type_id="1">070185UL5</xref>
<xref type="Non_Fiction" type_id="2">US070185UL50</xref>
</book_xref>
</master_information>
<book_details>
<price>19.25</price>
<publish_date>2002-11-01</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book_details>
</book>
<book id="119818568">
<master_information>
<book_xref>
<xref type="Fiction" type_id="1">070185UK7</xref>
<xref type="Non_Fiction" type_id="2">US070185UK77</xref>
</book_xref>
</master_information>
<book_details>
<price>5.95</price>
<publish_date>2004-05-01</publish_date>
<description>After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society.</description>
</book_details>
</book>
<book id="119818567">
<master_information>
<book_xref>
<xref type="Fiction" type_id="1">070185UJ0</xref>
<xref type="Non_Fiction" type_id="2">US070185UJ05</xref>
</book_xref>
</master_information>
<book_details>
<price>4.95</price>
<publish_date>2000-09-02</publish_date>
<description>When Carla meets Paul at an ornithology
conference, tempers fly as feathers get ruffled.</description>
</book_details>
</book>


预期输出格式1:

  <book id="6636551">
<master_information>
<book_xref>
<xref type="Fiction" type_id="1">72771KAM3</xref>
<xref type="Non_Fiction" type_id="2">US72771KAM36</xref>
</book_xref>
</master_information>
</book>

我为格式 1 使用的 XQuery:

  for$x in //book_xref/xref
return $x

格式 1 的问题:我尝试单独包含图书 ID,以便将其包含在输出中,但它与我上面提到的预期格式不匹配。如何在输出中按照格式获取图书 ID?


预期输出格式 2(逗号分隔):

  book_id, xref_type, xref_type_id, xref
6636551, Fiction, 1, 72771KAM3
6636551, Non_Fiction, 2, US72771KAM36
119818569, Fiction, 1, 070185UL5
119818569, Non_Fiction, 2, US070185UL50
etc.

格式 2 的问题:如何通过 XQuery 获得逗号分隔格式的输出?为此,我需要坚持使用 XSLT 吗?

感谢您的回复。

最佳答案

对于 CSV,您可以使用 string-join 即对于您可以使用的那四个值

//book//book_xref/xref/string-join((ancestor::book/@id, @type, @type_id, .), ',')

这将给出带有记录数据的字符串序列;如果你想要一个带有标题行和那些数据行的字符串,你可以使用另一个字符串连接:

string-join(('book_id,xref_type,xref_type_id,xref', //book//book_xref/xref/string-join((ancestor::book/@id, @type, @type_id, .), ',')), '&#10;')

对于转换/XML 提取,使用 xref 后代重建 book 元素并添加 master_information 例如

//book[.//book_xref/xref]/<book id="{@id}">{master_information}</book>

关于xml - 如何使用 XQuery 提取特定的 XML 记录并以逗号分隔格式输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46204972/

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