Получить часть XML-документа в Python - PullRequest
0 голосов
/ 27 января 2011

У меня есть файлы XML, соответствующие DTD

<!ELEMENT root (node, notinteresting>
<!ELEMENT node (node*)>
<!ELEMENT notinteresting (#PCDATA)>

, и я хочу получить самый верхний узел (в XPath: /root/node) такого файла и все, что ниже него, игнорируя бит notinteresting,Как я могу сделать это в нескольких строках Python?Скорость / потребление памяти не проблема.Я хочу что-то, что я могу print.

Ответы [ 2 ]

3 голосов
/ 27 января 2011

Вы можете использовать elementtree API , в зависимости от версии, которую вы будете использовать, импорт может немного отличаться.Вам нужна версия> = python 2.7

from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse("yourdoc.xml")
roottree = tree.getroot() 

Тогда это дает вам возможность делать такие вещи, как.

for c in roottree.getchildren():

обратите внимание, что если у вас есть только строка для ввода вместоparse вы можете использовать fromstring ()

update: вы также можете использовать, если «root» является корневым элементом XML-файла

roottree = tree.find('root') 
0 голосов
/ 27 января 2011

Посмотрите на 2 модуля,

1) минидом

2) ElementTree

И то, и другое позволит вам делать то, что вы хотите, хотя и немного по-другому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...