我在BaseX中存储了两个XML文档,分别是医院和办公室。
以下是office xml:
<Staff>
<Employee Name="Brian">
<Personal>
<SSN> 666-66-6666 </SSN>
</Personal>
<StaffInfo>
<Position> Doctor </Position>
<AccountableTo> David </AccountableTo>
</StaffInfo>
</Employee>
<Employee Name="David">
<Personal>
<SSN> 555-55-5555 </SSN>
</Personal>
<StaffInfo>
<Position> Doctor </Position>
<AccountableTo />
</StaffInfo>
</Employee>
</Staff>
我想在此XML中添加一个或多个员工。如何使用BaseX添加元素?
最佳答案
XQuery具有一个名为XQuery Update的更新工具official W3C recommendation,用于更改文档结构。
您可以像这样使用更新:
给定您已经创建了数据库雇员,并带有以下命令:CREATE DB office /path/to/office.xml
现在,您可以使用XQuery Update工具并运行以下查询:
let $up := <Employee Name="Joe">
<Personal>
<SSN>666-66-1234</SSN>
</Personal>
<StaffInfo>
<Position>Doctor</Position>
<AccountableTo>Jeff</AccountableTo>
</StaffInfo>
</Employee>
return
insert node $up as last into doc('office')/Staff
这将在数据库中
$up
的最后位置广告staff
引用的节点BaseX Documentation Wiki包含有关更新的更多信息:
xmlmind.com提供了一个很好的教程XQuery Update for the impatient。
当然,您可以使用API发出这些查询,首先我建议您使用GUI,这样您就可以直接查看结果。
希望能有所帮助,随时询问更多信息;在这里或在官方BaseX Mailing List上。
关于xquery - 使用Basex在XML中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407743/