Как получить атрибуты тега xml в Python?

Я ищу способ добавить атрибуты в теги xml в python. Или, например, чтобы создать новый тег с новыми атрибутами, у меня есть следующий файл xml:

<types name='character' shortName='chrs'>
....
...

</types>

и я хочу добавить атрибут, чтобы он выглядел так:

<types name='character' shortName='chrs' fullName='MayaCharacters'>
....
...
</types>

как мне это сделать с питоном? кстати. Я использую python и minidom для этого, пожалуйста, помогите. заранее спасибо


person Moayyad Yaghi    schedule 09.02.2010    source источник


Ответы (3)


Вы можете использовать свойство атрибутов соответствующий Node объект.

Например:

from xml.dom.minidom import parseString
documentNode = parseString("<types name='character' shortName='chrs'></types>")
typesNode = documentNode.firstChild

# Getting an attribute
print typesNode.attributes["name"].value # will print "character"

# Setting an attribute
typesNode.attributes["mynewattribute"] = u"mynewvalue"
print documentNode.toprettyxml()

Последний оператор print выведет этот XML-документ:

<?xml version="1.0" ?>
<types mynewattribute="mynewvalue" name="character" shortName="chrs"/>
person AndiDog    schedule 09.02.2010
comment
+1 мне нравится твой способ упростить вещи. чувак, ты должен начать писать книги! - person Moayyad Yaghi; 09.02.2010

Я научился синтаксическому анализу xml в python из этой замечательной статьи. В нем есть раздел атрибутов, на который нельзя связать, но просто выполните поиск «Атрибуты» на этой странице, и вы найдете его, содержащий необходимую информацию.

Но вкратце (фрагмент украден с указанной страницы):

>>> building_element.setAttributeNS("http://www.boddie.org.uk/paul/business", "business:name", "Ivory Tower")
>>> building_element.getAttributeNS("http://www.boddie.org.uk/paul/business", "name")
'Ivory Tower'

Вы, вероятно, захотите пропустить обработку пространств имен, чтобы сделать код чище, если они вам не нужны.

person Mizipzor    schedule 09.02.2010

Казалось бы, вы просто вызываете setAttribute для проанализированных объектов dom.

http://developer.taboca.com/cases/en/creating_a_new_xml_document_with_python/

person Matti Lyra    schedule 09.02.2010