Получение текстовых значений из XML в Python

from xml.dom.minidom import parseString dom = parseString(data) data = dom.getElementsByTagName('data') 

переменная 'data' возвращается как объект-элемент, но я не могу использовать ее в документации, чтобы получить текстовое значение элемента.

Например:

 <something><data>I WANT THIS</data></something> 

У кого-нибудь есть идеи?

2 Solutions collect form web for “Получение текстовых значений из XML в Python”

Это должно сделать трюк:

 dom = parseString('<something><data>I WANT THIS</data></something>') data = dom.getElementsByTagName('data')[0].childNodes[0].data 

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

Таким образом, способ взглянуть на это состоит в том, что «Я ХОЧУ ЭТО» на самом деле является другим узлом. Это текстовое дочернее «данные».

 from xml.dom.minidom import parseString dom = parseString(data) nodes = dom.getElementsByTagName('data') 

На данный момент «узлы» представляют собой NodeList, и в вашем примере он имеет в нем один элемент, который является элементом «data». Соответственно элемент «data» также имеет только один дочерний элемент, который является текстовым узлом «Я ХОЧУ ЭТО».

Таким образом, вы можете просто сделать что-то вроде этого:

 print nodes[0].firstChild.nodeValue 

Обратите внимание, что в случае, когда в вашем вводе более одного тега, называемого «данные», вы должны использовать какой-то метод итерации на «узлах», а не индексировать его напрямую.

Interesting Posts

Установка метакласса завернутого класса с помощью Boost.Python

Python 3: наиболее эффективный способ создания функции

Чтение содержимого ячейки в записной книжке ipython

Мое новое окно python gui открылось из другого окна, как только оно открывается. Как я могу это исправить

Установите Numpy, скомпилированный для VS2010 для встроенного интерпретатора

Техника использования std :: ifstream, std :: ofstream в python через SWIG?

получение элементов списка из request.POST в django / python

Асинхронные данные через новый API данных Bloomberg (COM v3) с Python?

Обработка групп захвата в re.sub?

Python "из импорта пакетов …"

Большой файл не сбрасывается на диск сразу после вызова close ()?

Невозможно запустить главную функцию unittest в ноутбуке ipython / jupyter

UnicodeEncodeError: кодек ascii не может кодировать символы в позиции 0-6: порядковый номер не в диапазоне (128)

Pyqt Gui Замерзает во время цикла

Как обнаружить столкновение объектов в Pygame?

Python - лучший язык программирования в мире.