2017-01-11 3 views
1

У меня есть что-то похожее на следующий документ XML, называемый sample.xmlИзвлечение пространств имен из XML в Python

<?xml version="1.0" encoding="UTF-8"?> 
<package xmlns:test='www.test.com' xmlns:test2='www.test2.com'> 
    <test:items> 
     <test2:item>Some information</test2:item> 
    </test:items> 
</package> 

Я хотел бы использовать Python (2.7) для извлечения словаря из пространств имен, как показано ниже:

>>> import xml.etree.ElementTree as ET 
>>> tree = ET.parse('sample.xml') 
>>> namespaces = {} # This is the dictionary I want to populate 

Требуемая мощность кода:

>>> namespaces 
{'test':'www.test.com', 'test2':'www.test2.com'} 

Я прочитал документацию для ElementTree, но еще нет. Любая помощь очень ценится

ответ

1

Если поменять стандартные библиотеки xml для почти идентичного, но более мощного lxml, то это так же просто, как

import lxml.etree as ET 
tree = ET.parse('sample.xml') 
namespaces = tree.nsmap 
+0

Это отлично. Спасибо – lioness99a

Смежные вопросы