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>
如何选择具有特定<name>
的<lab>
元素?在 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 标签
如何跟踪存储在 Oracle Berkeley DB XML 中的文件的更改
Oracle - Berkeley DB XML Java API - XML 查询以获取多个级别的属性值