Найти - Пользователи
Полная версия: XML изменение значения атрибута
Начало » Python для новичков » XML изменение значения атрибута
1
Романнн
Подскажите, пожалуйста, как проще изменить значение атрибута в XML? (XML находиться в файле и нужно его туда сохранить)
regall
Если использовать дом-парсинг, то проще всего:
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()
Романнн
Сделал так:
        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>
Романнн
Спасибо, разобрался, тему можно закрывать.
igor.kaist
Романнн
Спасибо, разобрался, тему можно закрывать.
Ну так расскажи, как… Этот топик в будущем могут читать люди, которые у которых та же проблема.
Романнн
    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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB