6

我在 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 添加元素?

4

1 回答 1

11

XQuery 有一个更新工具,一个官方的 W3C 推荐,称为 XQuery Update 来更改文档结构。

您可以像这样使用更新:

假设您已经创建了一个数据库雇员,使用以下命令:

CREATE DB office /path/to/office.xml

现在您可以使用 XQuery 更新工具并运行以下查询:

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 文档 Wiki包含有关更新的更多信息:

xmlmind.com 为不耐烦的人提供了一个很好的教程,XQuery Update 。

果然你可以使用 API 来发出这些查询,一开始我建议你坚持使用 GUI,这样你就可以直接看到结果。

希望这对您有所帮助,请随时询问更多信息;在此处或在官方BaseX 邮件列表中。

于 2012-02-23T09:45:26.620 回答