Форум сайта python.su
Уже запарился искать. В документации написано только, как создать файл заново, но не буду же я его перезаписывать целиком.
Пытался сделать так:
import xml.dom.minidom as xmlp
dom = xmlp.Document()
dom.load("./database.xml")
users = dom.documentElement
adduser = users.createTextNode("user")
users.appendChild(adduser)
Офлайн
Что-то не нашел я используемые Вами методы load и loadXML у класса Document (Node) :(
Используйте функции модуля parse и parseString соответственно
Офлайн
pyuser
Не, ну понятно, само дерево я получить-то могу:
dom = xmlp.parse(“./database.xml”)
а вот что дальше делать…
Распарсить и получить информацию легко, перезаписать файл - тоже. Но мне хочется именно добавить.
UPD: Хмм, интересно, работает вот такая схема:
dom = xmlp.parse("./database.xml")
root = dom.documentElement
elem = dom.createElement('user')
root.appendChild(elem)
Отредактировано (Май 26, 2009 18:31:32)
Офлайн
Заглядываем в исходник и буквально сразу натыкаемся на методы toxml и toprettyxml :)
Офлайн
pyuser
ага, только это влияет на структуру дерева внутри программы. Никаких изменений во внешний файл не вносится ;) В любом случае его приходится перезаписывать полностью.
Офлайн
EnchantnerА Вы полагаете другие парсеры работают подругому?!
В любом случае его приходится перезаписывать полностью.
Офлайн
pyuser
То есть в любом случае надо перезаписывать весь файл?
Офлайн
Лучшее, что можно сделать - открыть файл, в режиме ‘r+w’ и перезаписывать только с той позиции, где начинаются изменения (узнать позицию -> pos = f.tell(), перейти на позицию -> f.seek(pos)), иначе - никак.
Офлайн
xml - не лучший вариант для использования в качестве базы данных.
Офлайн
Ferroman
Это не мне, к счастью, это я курсовую студягам пишу :)
Офлайн