---
title: 了解 XQuery 更新功能
date: 2024-05-16
categories:
  - development
  - xquery
tags:
  - demo-videos
  - xmlspy
  - xquery
  - xquery-update-facility
description: 什么是 XQuery 更新功能？ 了解这个 XQuery 语言的扩展，并观看一段视频，学习如何构建 XQUF 表达式。
---
Status: #blog

Tags:  #demo-videos #xmlspy #xquery #xquery-update-facility

Categories: [development](/blog/zh/category/development.md) | [xpath+xquery](/blog/zh/category/xpathxquery.md)
# 了解 XQuery 更新功能

XQuery 更新功能是 XQuery 语言的扩展，它允许您使用“更新表达式”来修改 XML 文档，这些表达式可以插入、删除、替换或重命名节点。这个扩展提供了一种方便的方式来对 XML 文档进行智能更新，而 XMLSpy 具有独特的实现，使其操作更加简便。接下来，我们来看看它是如何工作的。

![关于XML查找和替换的资讯](/blog/images/shutterstock_113438227.jpg)

<!--more-->

## **什么是 XQuery 更新功能？**

XQuery 更新功能 (XQUF) 是一种 XQuery 语言扩展，它定义了 FLWOR 表达式，这些表达式可用于对 XML 文档进行持久性修改。这些表达式通过以下一种或多种操作来更新节点：

- 插入一个节点
- 删除一个节点
- 替换一个节点及其所有子节点
- 替换节点的内容或值
- 重命名节点

例如，在下面的截图中，我们使用 XQuery 更新功能，将某个节点的数值修改为：对于位于美国境内的办公室的员工，将电话分机号码后增加一个“1”；而对于其他分机，则增加一个“2”，以适应电话分机号码改为四位数的变更。

## **在 XMLSpy 中使用 XQuery 进行更新**

XMLSpy 支持以下两种方式： [XQuery 更新版本 1.0](http://www.w3.org/TR/xquery-update-10/) 和 [3.0](http://www.w3.org/TR/xquery-update-30/).

以下所示的 "[XQuery 更新功能编辑器](https://www.altova.com/zh/xmlspy-xml-editor/xquery-update-facility-editor)" 能够轻松地编写和测试五种类型的更新表达式，它具有语法高亮、代码自动补全以及错误消息提示等功能。您可以在编写过程中预览更新表达式的结果，以便于快速排查问题。此外，在预览窗口中点击一个结果，会高亮显示您实例文档中受影响的节点。然后，您只需单击一下即可执行更新操作，可以选择在当前文件中执行，也可以在所有打开的文件、一个文件夹或整个 XMLSpy 项目中执行。

![XQuery 更新功能](/blog/images/xquery-update-facility.png)

XQuery 更新语句也支持在完整执行 XQuery 文档（Alt + F10）期间使用。

### **是什么让 XMLSpy 的实现如此具有创新性？**

根据标准规定，XQuery 更新执行的结果是一个_新的_ XML 文件，该文件基于原始文件并应用了指定的修改。这意味着每次执行都会完全重新格式化文档。

XMLSpy 允许您跳过这一中间步骤，因为它允许您直接在指定的 XML 文件中进行更新，而无需创建新的文件。

通过这种方式，您将获得一个智能机制，可以利用熟悉的“查找和替换”模式来执行 XQuery 更新。然而，由于 XQuery 更新利用 FLWOR 语句的强大功能，可以实现复杂的更新操作，它克服了“查找和替换”的局限性，让您能够快速、轻松地进行复杂的、智能的 XML 文件修改。

### **它是如何运作的？**

通过这个简短的视频，您可以了解其工作原理。视频将快速演示如何在 XMLSpy 中编辑 XQuery 更新表达式，同时，如果您不熟悉 XQuery 更新功能的语法，它也作为一个快速教程，帮助您了解其工作方式。

![](https://www.youtube.com/watch?v=pJ0380Y1JPg)

如果您想亲自尝试使用 XQuery 更新功能，您可以 [下载 XMLSpy 的免费试用版](https://www.altova.com/zh/xmlspy-xml-editor/download)。
