Xquery:使用Java返回多个数据元素?

时间:2016-10-13 13:59:58

标签: java xml xpath xquery

我有以下xml

<Products>
    <Product>
        <name>Sample name</name>
        <attribute id="sampleid" location="sampleLocation" type="sampleType"/>
        <price>12345</price> 
    </product>
</Products> 

如何从此XML返回给定名称的以下数据(始终唯一):

1. location (e.g. "sampleLocation")
2. type (e.g. "sampleType")
3. price (e.g. 12345

我目前能够单独查询每个 以返回值,但我不确定将多个值一起返回的语法。

位置的单个查询示例:

 ResourceSet resourceSet = service.query(
                        format("//Products/Product[name='%s']" +
                                        "/attribute/@Location/string()"
                                , StringEscapeUtils.escapeXml(journey_Name)
                        ));

上面的查询将返回:“sampleLocation”。

1 个答案:

答案 0 :(得分:1)

以下查询返回三个字符串的序列:

/Products/Product/(string(attribute/@location), string(attribute/@type), string(price)) 

如何将三个字符串的序列返回到Java应用程序取决于您使用的XQuery处理器和API,您还没有告诉我们。