Получение текстовых значений из 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 

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

  • Довольно печатать в lxml не удается, когда я добавляю теги в обработанное дерево
  • Разбор дерева ad hoc
  • Невозможно приобрести доменное имя и использовать python для анализа вывода xml
  • Создание вспомогательных таблиц в листе Excel из xml с использованием дерева элементов python
  • Библиотека обнаружения кодирования в python
  • Как разбить XML-файл на Python?
  • Почему этот xpath не работает с использованием lxml в python?
  • Сохранение XML с использованием ETree в Python. Он не сохраняет пространства имен и добавляет ns0, ns1 и удаляет теги xmlns
  • Предел дерева элементов на xpath
  • Python XPath SyntaxError: неверный предикат
  • Python: Unicode и ElementTree.parse
  • Python - лучший язык программирования в мире.