2015-05-05 88 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)