2015-05-05 60 views
0

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

<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中做这样的事情?

回答

0

我认为你最好得到旧文件,复制数据,删除文件,并添加新的修改后的数据。

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)