Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 0
  0   
								
								Уже запарился искать. В документации написано только, как создать файл заново, но не буду же я его перезаписывать целиком.
Пытался сделать так:
import xml.dom.minidom as xmlp
dom = xmlp.Document()
dom.load("./database.xml")
users = dom.documentElement
adduser = users.createTextNode("user")
users.appendChild(adduser)
Офлайн
 
							 36
  36   
								
								Что-то не нашел я используемые Вами методы load и loadXML у класса Document (Node) :( 
Используйте функции модуля parse и parseString соответственно
Офлайн
 
							 0
  0   
								
								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)
Офлайн
 
							 36
  36   
								
								Заглядываем в исходник и буквально сразу натыкаемся на методы toxml и toprettyxml :)
Офлайн
 
							 0
  0   
								
								pyuser
ага, только это влияет на структуру дерева внутри программы. Никаких изменений во внешний файл не вносится ;) В любом случае его приходится перезаписывать полностью.
Офлайн
 
							 36
  36   
								
								EnchantnerА Вы полагаете другие парсеры работают подругому?!
В любом случае его приходится перезаписывать полностью.
Офлайн
 
							 0
  0   
								
								pyuser
То есть в любом случае надо перезаписывать весь файл?
Офлайн
 
							 10
  10   
								
								Лучшее, что можно сделать - открыть файл, в режиме ‘r+w’ и перезаписывать только с той позиции, где начинаются изменения (узнать позицию -> pos = f.tell(), перейти на позицию -> f.seek(pos)), иначе - никак.
Офлайн
 
							 1
  1   
								
								xml - не лучший вариант для использования в качестве базы данных.
Офлайн
 
							 0
  0   
								
								Ferroman
Это не мне, к счастью, это я курсовую студягам пишу :)
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)