Как читать конфигурационный файл в формате XML с помощью Python - PullRequest
0 голосов
/ 22 мая 2018

Как прочитать значения из файла конфигурации в формате XML, смотрите ниже. Здесь теги name1, name2 будут увеличиваться как name4, name5 ...

<config> 
    <name>
        <name1>xxxxxxxxx</name1>
        <name2>yyyyyyyyy</name2>
        <name3>zzzzzzzzz</name3>
    </name>
    <company>
        <loc1>1234</loc1> 
        <loc2>1242</loc2> 
        <loc3>1212</loc3> 
    </company>
</config>

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Я думаю, что это лучше.

import xml.dom.minidom as minidom
dic={}
dom = minidom.parse("filename")
root = dom.documentElement                        #take name1 as example
dic['name1']=root.getElementsByTagName('name1')[0].firstChild.data
0 голосов
/ 22 мая 2018

Вы можете использовать пакет стандартной библиотеки xml для анализа XML-документа.

Например:

In [91]: import xml.etree.ElementTree as ET

In [92]: data = """
    ...: <config>
    ...:   <name>
    ...:   <name1>xxxxxxxxx</name1>
    ...:   <name2>yyyyyyyyy</name2>
    ...:   <name3>zzzzzzzzz</name3>
    ...: </name>
    ...: <company>
    ...: <loc1>1234</loc1>
    ...: <loc2>1242</loc2>
    ...: <loc3>1212</loc3>
    ...: </company>
    ...: </config>
    ...: """

In [93]:

In [93]: x = ET.fromstring(data)

In [94]: [each.text for each in x.find('.//name')]
Out[94]: ['xxxxxxxxx', 'yyyyyyyyy', 'zzzzzzzzz']

Или, если вам нужен словарь:

In [95]: {each.tag:each.text for each in x.find('.//name')}
Out[95]: {'name1': 'xxxxxxxxx', 'name2': 'yyyyyyyyy', 'name3': 'zzzzzzzzz'}
...