Berkeley XML DB "где" аналог
В настоящее время я изучаю Berkeley XML DB и получил задание написать скрипт на Python, используя его. Проблема, с которой я сейчас сталкиваюсь, состоит в том, чтобы выбрать конкретный узел контейнера. Например у нас есть контейнер с такой информацией
<root>
<lab>
<name>Lab1</name>
<state>Completed</state>
</lab>
<lab>
<name>Lab3</name>
<state>Not completed</state>
</lab>
</root>
Как выбрать <lab>
элемент с определенным <name>
? В 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)