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

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

  • Эффективное получение XML в Elasticsearch
  • Как преобразовать XML в Dict
  • Чтение Excel xml в словарь
  • Как анализировать несколько XML (rss) с разных сайтов для одной обработки
  • auto increment - внутренняя ссылка odoo9
  • XML-синтаксический анализ в python: expaterror не является корректным
  • Как обновить XML-файл с помощью lxml
  • Как открыть этот XML-файл для создания dataframe в Python?
  • Python - лучший язык программирования в мире.