选择属性值时XPath与XQuery之间的差异

问题描述 投票:1回答:1

XPath和XQuery选择属性的方式似乎有所不同。这是从W3Schools偷来的玩具示例:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book category="cooking">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="children">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
</bookstore> 

我想检索lang属性的值。所以,我天真地做到了://title/@lang非常适合...在XPath评估程序上运行,但not在XQuery评估程序上运行。

需要知道的什么:如何编写XPath表达式以在XQuery求值器上工作?

要知道的:发生了什么事!!

这里是TL部分:

我在没有这些功能的旧平台上,所以我将XML和查询表达式发送到外部服务,我认为这是基于Saxon的XQuery评估程序。我的语法在CodeBeautify's XPath Tester上正常工作。

我也已经验证了xpathtester.com上的这种区别:它在XPath模式下可以正常工作,但在XQuery模式下却没有。 (注意:链接未加密。)

xpathtester.com返回以下错误消息:ERROR - Cannot create an attribute node (lang) whose parent is a document node

xpath xquery
1个回答
0
投票
表达式//title/@lang在XPath和XQuery上均有效,并返回两个属性节点的序列。
© www.soinside.com 2019 - 2024. All rights reserved.