Berkeley XML DB "where" 类比

Posted

技术标签:

【中文标题】Berkeley XML DB "where" 类比【英文标题】:Berkeley XML DB "where" analog 【发布时间】:2015-05-05 17:37:18 【问题描述】:

我目前正在学习 Berkeley XML DB,并获得了使用它编写 Python 脚本的任务。我目前面临的问题是选择容器的特定节点。例如,我们有包含此类信息的容器

<root>
  <lab>
    <name>Lab1</name>
    <state>Completed</state>
  </lab>
  <lab>
    <name>Lab3</name>
    <state>Not completed</state>
  </lab>
</root>

如何选择具有特定&lt;name&gt;&lt;lab&gt; 元素?在 SQL 中,我会使用 WHERE Name='Lab1'。有没有办法在 XML BDB 中做类似的事情?

【问题讨论】:

【参考方案1】:

我认为您最好获取旧文档、复制数据、删除文档并添加新的修改数据。

mgr = XmlManager()
uc = mgr.createUpdateContext()
container = mgr.openContainer("labs.dbxml")  # Here must be your database name

qc = mgr.createQueryContext()
document = container.getDocument("Lab11")
name = document.getName()
content = document.getContent()

# Change fields here using XPath

container.deleteDocument('La1 1', uc)
container.putDocument(name, content, uc)

【讨论】:

以上是关于Berkeley XML DB "where" 类比的主要内容,如果未能解决你的问题,请参考以下文章

您能否提出使用 Berkeley DB XML 的案例

如何修复 Berkeley DB 文件中不正确的 XML 标签

如何跟踪存储在 Oracle Berkeley DB XML 中的文件的更改

Oracle - Berkeley DB XML Java API - XML 查询以获取多个级别的属性值

应该在没有磁盘容器的情况下使用 Berkeley DB XML?

berkeley xml db作为来自java的嵌入式数据库