Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2009 20:28:41

Романнн
От:
Зарегистрирован: 2009-09-30
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

XML изменение значения атрибута

Подскажите, пожалуйста, как проще изменить значение атрибута в XML? (XML находиться в файле и нужно его туда сохранить)



Офлайн

#2 Сен. 30, 2009 20:37:02

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

XML изменение значения атрибута

Если использовать дом-парсинг, то проще всего:

from xml.dom.minidom import parseString

f = open('file.xml','rt')
data = parseString(f.read())
f.close()
......
...... # ищем нужный элемент
......
element.setAttribute('attr_name','attr_value')
......
f = open('file.xml','wt')
f.write(data.toxml())
f.close()



Офлайн

#3 Сен. 30, 2009 21:45:01

Романнн
От:
Зарегистрирован: 2009-09-30
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

XML изменение значения атрибута

Сделал так:

        f = open( "pages/xml.xml",'rt')
data = xml.dom.minidom.parseString(f.read())
f.close()
element = xml.dom.minidom.Element('id')
element.setAttribute('value','newAttr')
f = open("pages/xml.xml",'wt')
qw = data.toxml()
qw = qw.encode('utf-8')
f.write(qw)
f.close()
но почему-то файл не изменился. Подскажите, пожалуйста, что я сделал не так.

Файл xml.xml:
<?xml version=“1.0” ?>
<comp>
<id value=“web”/>
<menu_type value=“menu”/>
</comp>



Отредактировано (Сен. 30, 2009 22:05:28)

Офлайн

#4 Сен. 30, 2009 22:48:23

Романнн
От:
Зарегистрирован: 2009-09-30
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

XML изменение значения атрибута

Спасибо, разобрался, тему можно закрывать.



Отредактировано (Сен. 30, 2009 22:48:46)

Офлайн

#5 Окт. 1, 2009 09:50:51

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

XML изменение значения атрибута

Романнн
Спасибо, разобрался, тему можно закрывать.
Ну так расскажи, как… Этот топик в будущем могут читать люди, которые у которых та же проблема.



Офлайн

#6 Окт. 3, 2009 16:21:54

Романнн
От:
Зарегистрирован: 2009-09-30
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

XML изменение значения атрибута

    f = open( "pages/xml.xml",'rt')
data = xml.dom.minidom.parseString(f.read())
f.close()
element = data.getElementsByTagName('comp')[0].getElementsByTagName('id')[0]
element.setAttribute('value','newAttr')
f = open("pages/xml.xml",'wt')
f.write(data.toxml('utf-8'))
f.close()



Отредактировано (Окт. 3, 2009 16:23:18)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version