如何使用 xquery 循环 xml 结构?

发布于 2024-10-04 02:26:46 字数 404 浏览 0 评论 0原文

xml是这样的:

<persons>
<person>
<name/>
<surname/>
</person>

<person index=1>
<name/>
<surname/>
</person>

<person index=2>
<name/>
<surname/>
</person>
...
</persons>

我需要构建一个显示所有人所有数据的视图。

name surname
name1 surname1

我如何在 select 语句中执行此循环?它需要是一个视图。

the xml is like this:

<persons>
<person>
<name/>
<surname/>
</person>

<person index=1>
<name/>
<surname/>
</person>

<person index=2>
<name/>
<surname/>
</person>
...
</persons>

I need to build a view that shows all data of all persons.

name surname
name1 surname1

How can i do this loop in a select statement? It needs to be a view.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦境 2024-10-11 02:26:46

使用

string-join(/*/person/concat(name, ' ', surname), '
')

当针对以下 XML 文档计算此 XPath 表达式时:

<persons>
    <person index="1">
        <name>Alex</name>
        <surname>Brown</surname>
    </person>
    <person index="2">
        <name>Katie</name>
        <surname>Smith</surname>
    </person>
    <person index="3">
        <name>Julius</name>
        <surname>Caesar</surname>
    </person>
</persons>

结果为

 Alex Brown
 Katie Smith
 Julius Caesar

Use:

string-join(/*/person/concat(name, ' ', surname), '
')

when this XPath expression is evaluated, against the following XML document:

<persons>
    <person index="1">
        <name>Alex</name>
        <surname>Brown</surname>
    </person>
    <person index="2">
        <name>Katie</name>
        <surname>Smith</surname>
    </person>
    <person index="3">
        <name>Julius</name>
        <surname>Caesar</surname>
    </person>
</persons>

the result is:

 Alex Brown
 Katie Smith
 Julius Caesar
辞取 2024-10-11 02:26:46

如果您需要转换,您是否考虑过使用 xslt?

如果您需要 xquery,则选择这些节点,

doc("file.xml")/persons/person/name | /persons/person/name

或者

doc("file.xml")//name |// surname     

即出现在任何地方的姓名

Have you considered using xslt if you need a transformation?

If you need to xquery, to select these nodes then,

doc("file.xml")/persons/person/name | /persons/person/name

OR

doc("file.xml")//name |// surname     

i.e. Name, Surname occuring anywhere

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文