XQuery(或 XPath)是不是具有更新、插入和删除以及选择的等价物?

Posted

技术标签:

【中文标题】XQuery(或 XPath)是不是具有更新、插入和删除以及选择的等价物?【英文标题】:Does XQuery (or XPath) have equivalents to Update, Insert, and Delete as well as Select?XQuery(或 XPath)是否具有更新、插入和删除以及选择的等价物? 【发布时间】:2010-09-23 11:29:49 【问题描述】:

我知道如何使用 XPath 从 XML 中找到我需要的东西。语法需要一点时间来适应,但它非常强大。我也对学习 XQuery 很感兴趣,但是类似 SQL 的语法似乎很尴尬。即便如此,如果它不仅可以提供 select 等效项,还可以像 SQL 那样提供更新、插入和删除,我会原谅所有的尴尬。

那么,XQuery 是否具有 Update、Insert、Delete 和 Select 等价物?

XPath 是否有我忽略的这些等价物?

【问题讨论】:

【参考方案1】:

查看XQuery Update Facility、查看XQuery Use Cases 或查看XML Query working group 页面。

【讨论】:

【参考方案2】:

XPath 是一种用于寻址 XML 文档部分的语言。所以它不能有任何 DML 语句。顾名思义就是select语句。

【讨论】:

XPath 确实如此。然而,XQuery 确实有一个允许更新的正式标准化扩展。【参考方案3】:

没有。 XPathXQuery 都没有类似 SQL 的更新/插入/删除功能。

您需要寻找“XQuery 1.0 Update Facility”的实现。

目前(2008 年 11 月),已知三个这样的:

    SaxonSA XSLT and XQuery Processor——Michael Kay;自 9.1 版起受支持,但仅限于商业版。 MonetDB/XQuery - MonetDB 关系数据库系统之上的开源 XQuery 处理器。 XQilla - 一个开源 (ASL2.0) XQuery 处理库,支持最新的 XQuery 更新特性。 XQilla 是用 C++ 编写的,包括一个命令行可执行 shell,用于对存储在本地文件系统上的 XML 内容执行查询。该库是积极开发的,是受支持的 Oracle 产品Berkeley DB XML 的一部分。

【讨论】:

@CharlesDuffy:当然,但我相信 2008 年 BaseX 还没有出现。【参考方案4】:

在 SQL Server 2005/8 中,XQuery 的扩展名为XML DML,支持使用replace value of 语句修改数据。

【讨论】:

以上是关于XQuery(或 XPath)是不是具有更新、插入和删除以及选择的等价物?的主要内容,如果未能解决你的问题,请参考以下文章

Xpath或Xquery忽略任何类型的命名空间前缀

使用 XPath/XQuery 过滤 XML 列上的 SQL 查询

XPath与Xquery

XPath、XQuery 和 XPointer 之间的区别

XQuery/XPath:元素 id 在输出中丢失

使用 XPath 谓词优化 XQuery 查询