Я просмотрел несколько сообщений, но я не нашел ответов, которые решили мою проблему.Извлечение текста из узла XML с помощью minidom
Пример XML =
<TextWithNodes>
<Node id="0"/>TEXT1<Node id="19"/>TEXT2 <Node id="20"/>TEXT3<Node id="212"/>
</TextWithNodes>
Так что я понимаю, что, как правило, если я извлек TextWithNodes
как NodeList
я хотел бы сделать что-то вроде
nodeList = TextWithNodes[0].getElementsByTagName('Node')
for a in nodeList:
node = a.nodeValue
print node
Все, что я получаю None
. Я прочитал, что вы должны написать a.childNodes.nodeValue
, но в списке узлов нет дочернего узла, поскольку он выглядит так, как все теги Node
закрывают теги? Если я использую a.childNodes
, я получаю []
.
Когда я получаю тип узла для a
, это тип 1 и TEXT_NODE
= 3. Я не уверен, что это полезно.
Я хотел бы извлечь TEXT1
, TEXT2
и т.д.
Ваши 'TEXT1',' TEXT2' и т. Д. На самом деле не являются участниками какого-либо элемента. Если ваш XML будет ' TEXT1 TEXT2 TEXT3 '? Кроме того, существует закрывающий тег ''? –
Chris
Кроме того, я настоятельно рекомендую использовать ['xml.etree.ElemetTree'] (http://docs.python.org/library/xml.etree.elementtree.html) (часть стандартной библиотеки) для работы с XML в Python. Это гораздо более простой и более пифонический интерфейс. Например, в 'xml.dom' вы должны использовать' element.childNodes.nodeValue', чтобы получить текст, связанный с 'element', в etree это просто' element.text'. – Chris
Привет, Крис, спасибо, это было то, что я думал, так как это были все закрывающие теги, которые меня действительно смутили. Я не уверен, насколько важен этот xml-файл, это был всего лишь вывод программного обеспечения для текстовой инженерии для аннотации, который мне нужно проанализировать в excel. Я посмотрю на ElementTree. – Jasmine