XQuery 添加元素和属性学习笔记
1. 添加元素
在 XQuery 中,我们可以使用 element
关键字来添加元素。语法如下:
Copy Codeelement elementName { content }
其中,elementName
为要添加元素的名称,content
为元素的内容。
例如,我们要在一个名为 students
的 XML 文档中添加一个名为 student
的元素,其包含一个名为 name
的子元素和一个名为 age
的属性,可以使用以下代码:
xqueryCopy Codedeclare namespace ns = "http://example.com/students";
let $doc := doc("students.xml")/ns:students
return
insert node
element ns:student {
element ns:name {"John"},
attribute age {"18"}
}
into $doc
上述代码中,我们首先通过 doc
函数获取了名为 students.xml
的 XML 文档,并将其赋值给变量 $doc
。然后使用 insert node
关键字,在 $doc
中插入了一个名为 student
的元素。该元素包含一个名为 name
的子元素,其值为 John
,以及一个名为 age
的属性,其值为 18
。
2. 更新元素属性
在 XQuery 中,我们可以使用 attribute
关键字来更新元素的属性。语法如下:
Copy Codeattribute attributeName { newValue }
其中,attributeName
为要更新的属性名称,newValue
为新的属性值。
例如,我们要将上述示例中添加的 student
元素的 age
属性值改为 19
,可以使用以下代码:
xqueryCopy Codedeclare namespace ns = "http://example.com/students";
let $doc := doc("students.xml")/ns:students
return
replace value of node $doc/ns:student/@age with "19"
上述代码中,我们首先通过 doc
函数获取了名为 students.xml
的 XML 文档,并将其赋值给变量 $doc
。然后使用 replace value of node
关键字,将 $doc
中名为 student
的元素的 age
属性值替换为 19
。
3. 删除元素属性
在 XQuery 中,我们可以使用 delete
关键字来删除元素的属性。语法如下:
Copy Codedelete node attributeName
其中,attributeName
为要删除的属性名称。
例如,我们要将上述示例中添加的 student
元素的 age
属性删除,可以使用以下代码:
xqueryCopy Codedeclare namespace ns = "http://example.com/students";
let $doc := doc("students.xml")/ns:students
return
delete node $doc/ns:student/@age
上述代码中,我们首先通过 doc
函数获取了名为 students.xml
的 XML 文档,并将其赋值给变量 $doc
。然后使用 delete node
关键字,将 $doc
中名为 student
的元素的 age
属性删除。