Я хотел включить XML-файл в другой XML-файл и проанализировать его с помощью python. Я пытаюсь добиться этого через Xinclude. Существует файл file1.xml, который выглядит как
<?xml version="1.0"?>
<root>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="file2.xml" parse="xml" />
</document>
<test>some text</test>
</root>
, и файл file2.xml, который выглядит как
<para>This is a paragraph.</para>
Теперь в своем коде Python я попытался получить к нему доступ:
from xml.etree import ElementTree, ElementInclude
tree = ElementTree.parse("file1.xml")
root = tree.getroot()
for child in root.getchildren():
print child.tag
Он печатает тег всех дочерних элементов корня
document
test
Теперь, когда я пытаюсь напечатать дочерние объекты напрямую, как
print root.document
print root.test
Он говорит, что корень не имеетдети назвали тест или документ. Тогда как мне получить доступ к содержимому файла file2.xml?
Я знаю, что могу получить доступ к элементам XML из python со схемой вроде:
schema=etree.XMLSchema(objectify.fromstring(configSchema))
xmlParser = objectify.makeparser(schema = schema)
cfg = objectify.fromstring(xmlContents, xmlParser)
print cfg.elemetName # access element
Но так как здесь один файл XMLвходит в другой, я запутался, как написать схему. Как я могу решить это?