如何使用xquery在xml结构中循环?

时间:2010-11-23 07:51:26

标签: xpath xquery xpath-2.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语句中执行此循环?它需要是一种观点。

2 个答案:

答案 0 :(得分:1)

使用

string-join(/*/person/concat(name, ' ', surname), '&#xA;')

评估此XPath表达式时,针对以下XML文档:

<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

答案 1 :(得分:0)

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

如果你需要xquery,那么选择这些节点,

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

OR

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

即。姓名,姓氏在任何地方出现