Чтение и хранение данных XML в переменных Python - PullRequest
0 голосов
/ 08 мая 2018

У меня есть такой XML-код:

<?xml version="1.0"?>
<Server>
  <name>johny</name> 
  <address>statestreet</address>
  <city>Hyderabad</city> 
</Server>

Мне нужно хранить каждый атрибут в отдельной переменной в коде. Поэтому я пишу код, подобный этому

import xml.etree.ElementTree as et
tree=et.parse('sample.xml')  
root=tree.getroot()
for i in root.findall('Server'):
    name=i.find('name').text
    address = i.find('address').text
    city = i.find('city').text

Но это ничего не хранит. Пожалуйста, помогите мне

Ответы [ 2 ]

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

Как насчет этого:

def xmldata():
    config_xml = et.parse('sample.xml')
    root = sample.getroot()
    result = {}
    for child in root.getchildren():
        if child.tag=='name':
            result['name'] =child.text
        if child.tag=='address':
            result['address'] =child.text
        if child.tag=='city':
            result['city'] =child.text

    return result

И вы получите: {'name':'johny','address':'statestreet','city':'hyderabad'} назад

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

я получил решение. Я написал функцию:

def xmldata():
    config_xml = et.parse('sample.xml')
    root = sample.getroot()
    for child in root.getchildren():
        if child.tag=='name':
            name =child.text
        if child.tag=='address':
            address =child.text
        if child.tag=='city':
            city =child.text

    return name,address,city

но когда я вызываю этот def в основной функции, он отображается в виде списка ('johny','statestreet','hyderabad'). Как я могу получить его в виде словаря (name:'johny',address:'statestreet',city:'hyderabad')

...