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)
Другие вопросы по тегам