Python: использование минидома для поиска узлов с определенным текстом - PullRequest
2 голосов
/ 01 апреля 2009

В настоящее время я сталкиваюсь с XML, который выглядит следующим образом:

<ID>345754</ID>

Это содержится в иерархии. Я проанализировал xml и хочу найти узел идентификатора, выполнив поиск "345754".

Ответы [ 2 ]

10 голосов
/ 15 июня 2010

Ответ vartec нуждается в исправлении (извините, я не уверен, что смогу это сделать), он должен выглядеть так:

xmldoc = xml.dom.minidom.parse('your.xml')
matchingNodes = [node for node in xmldoc.getElementsByTagName("ID") if 
node.firstChild.nodeValue == '345754']

Две вещи были неправильными: (i) имена тегов чувствительны к регистру, поэтому сопоставление на "id" не будет работать и (ii) для узла элемента .nodeValue будет None, вам нужен доступ к текстовые узлы, которые находятся внутри узла элемента, который содержит значение, которое вы хотите.

4 голосов
/ 01 апреля 2009
xmldoc = minidom.parse('your.xml')
matchingNodes = [node for node in xmldoc.getElementsByTagName("id") if node.nodeValue == '345754']

Смотри также:

...