Python: Как получить текстовое содержимое элемента XML с помощью xml.dom.minidom? - PullRequest
9 голосов
/ 20 декабря 2010

Я вызвал elems = xmldoc.getElementsByTagName('myTagName') для объекта XML, который я проанализировал как minidom.parse(xmlObj). Сейчас я пытаюсь получить текстовое содержимое этого элемента, и хотя я провел некоторое время, просматривая dir () и пробуя что-то, я еще не нашел вызов. Как пример того, чего я хочу достичь, в:

<myTagName> Hello there </myTagName>

Мне бы хотелось, чтобы выписка была просто "Привет!" (очевидно, я мог бы разобрать это сам, но я ожидаю, что есть некоторые встроенные функции)

Спасибо

Ответы [ 3 ]

23 голосов
/ 20 декабря 2010

Попробуй так:

xmldoc.getElementsByTagName('myTagName')[0].firstChild.nodeValue
5 голосов
/ 16 мая 2015

подождите мес ... вы хотите ВСЕ текст под данным узлом?Затем он должен включать в себя функцию обхода поддерева некоторого вида.Не должен быть рекурсивным, но это прекрасно работает:

    def get_all_text( node ):
        if node.nodeType ==  node.TEXT_NODE:
            return node.data
        else:
            text_string = ""
            for child_node in node.childNodes:
                text_string += get_all_text( child_node )
            return text_string
3 голосов
/ 20 декабря 2010
for elem in elems:
    print elem.firstValue.nodeValue

Это напечатает текст каждого myTagName.

Джеймс

...