xml.dom.minidom получение элементов по тэгу - PullRequest
1 голос
/ 24 марта 2011

Как я могу получить значение code с помощью этой (ниже) строки xml и при использовании xml.dom.minidom?

<data>
    <element1>
        <name>myname</name>
    </element1>
    <element2>
        <code>3</code>
        <name>another name</name>
    </element2>
</data>

Поскольку могут появиться несколько тегов 'name', я хотел бы сделать что-то вроде этого:

from xml.dom.minidom import parseString
dom = parseString("<data>...</data>")
dom.getElementsByTagName("element1").getElementsByTagName("name")

Но, к сожалению, это не работает.

1 Ответ

1 голос
/ 24 марта 2011

Приведенный ниже код работал нормально для меня.Я думаю, что у вас есть несколько тегов, и вы хотите получить имя из второго тега.

myxml = """\
<data>
    <element>
        <name>myname</name>
    </element>
    <element>
        <code>3</code>
        <name>another name</name>
    </element>
</data>
"""

dom = xml.dom.minidom.parseString(myxml)
nodelist = dom.getElementsByTagName("element")[1].getElementsByTagName("name")
for node in nodelist:
    print node.toxml()
...