Извлечь текст из файла XML - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь извлечь данные из XML-файла с помощью скрипта Python, но я не могу сделать это достаточно глубоко. Например, мне удалось извлечь категории «обновленные» и «опубликованные», но не остальные. Я особенно заинтересован в извлечении alt1 и alt2.

Вот структура XML-файла:

   <?xml version='1.0' encoding='UTF-8'?>
    <entry xmlns="http://www.w3.org/2005/Atom" xmlns:as="http://atomserver.org/namespaces/1.0/">
        <id>/electron/atom/v1/domesday/dblocks-CI-52-54/CI-522000-5473000.xml</id>
        <as:revision>0</as:revision>
        <updated>2011-04-29T11:40:19.000Z</updated>
        <published>2011-04-29T11:40:19.000Z</published>
        <content type="application/xml">
            <block xmlns="">
                <alt1>Some text</alt1>
                <alt2>Some other thext</alt2>
            </block>
        </content>
    </entry>

И вот что я попробовал до сих пор:

import xml.etree.ElementTree as ET
tree = ET.parse(filename)
root = tree.getroot()
alt1elt = root.findtext('content/dblock/alt1')
alt2elt = root.findtext('content/dblock/alt2')
print(alt1elt)
print(alt2elt)

печатает

None
None

а не две строки, которые я пытаюсь получить. У вас есть идеи, что может решить эту проблему?

1 Ответ

0 голосов
/ 26 июня 2018
from xml.dom import minidom

doc = minidom.parse("yourxmlfile.xml")

print(doc.getElementsByTagName("alt1")[0].firstChild.data)
print(doc.getElementsByTagName("alt2")[0].firstChild.data)

Пример извлечения данных с использованием минидома.

...