xml - 如何在不带结尾分隔符的情况下在XQuery中使用分隔符连接字符串?

标签 xml xpath xquery

一个人如何编写一些XQuery来解决以下问题:

这是我目前写的:

<friends>
{for $lastname in volunteerDatabase/person/name/lastname
return
concat($lastname/string(), ' +')}
</friends>


该查询返回:

<Friends>Geller + Bing + Tribbiani +</Friends>


我想返回以下所有值均以'+'分隔的内容:

<Friends>Geller + Bing + Tribbiani</Friends>


虚拟样例数据:

<?xml version="1.0" encoding="UTF-8" ?>

<volunteerDatabase>
<person age="31" ssn="046187254">
    <name>
        <firstname>Ross</firstname>
        <lastname>Geller</lastname>
    </name>
    <telephone type="landline">
        <number>5534567</number>
    </telephone>
    <telephone type="mobile">
        <number>0851234567</number>
    </telephone>
</person>

<person age="29" ssn="355817204">
    <name>
        <firstname>Chandler</firstname>
        <firstname>Muriel</firstname>
        <lastname>Bing</lastname>
    </name>
    <telephone type="mobile">
        <number>0869932617</number>
    </telephone>
</person>

<person ssn="778123666">
    <name>
        <firstname>Joseph</firstname>
        <firstname>Francis</firstname>
        <lastname>Tribbiani</lastname>
    </name>
    <telephone type="landline">
        <number>01628777</number>
    </telephone>
</person>
</volunteerDatabase>


任何指导表示赞赏。

最佳答案

无需FLWOR表达式:

<friends>{fn:string-join(volunteerDatabase/person/name/lastname, " + ")}</friends>


...在将文档作为上下文项运行时返回:

<friends>Geller + Bing + Tribbiani</friends>

关于xml - 如何在不带结尾分隔符的情况下在XQuery中使用分隔符连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48480744/

相关文章:

xml - 存储 XML 数据的优雅解决方案

c# - NHibernate 映射到另一个不在 ID 上的对象

xml - 使用xpath访问节点的非文本子级之间的文本

xpath - 2个变量列表之间的差异TIBCO BW

xml - 在 SQL Server 2008 中使用 XQuery 搜索内容

android - 在 Android 应用程序中创建 MS Word 文档

xml - 删除 XML 命名空间,同时忽略根中的命名空间

java - 验证 SVG 下元素的填充颜色

xquery - BaseX - 在 XQuery 中使用封闭 xml 时内存不足

xquery - 在 XQuery 中解析日期数组(MarkLogic v8 风格)