Парсинг xml файла - Python
Формулировка задачи:
Изучаю python, пробую парсить xml
Файл следующего вида
Вот таким способом получается прочитать все дерево xml
но как мне получить конкретное значение определенного тэга ?
Скажем узнать memoryAvailable
Пробовал в iterfind() подставлять значение MemoryList ил Memory, тогда выдача print вообще пустая
Листинг программы
- <?xml version="1.0" encoding="UTF-8" ?>
- <DeviceStatus version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
- <currentDeviceTime>2016-09-11T21:27:54+12:00</currentDeviceTime>
- <deviceUpTime>217496</deviceUpTime>
- <CPUList>
- <CPU>
- <cpuDescription>ARMv7 Processor rev 2 (v7l)</cpuDescription>
- <cpuUtilization>4</cpuUtilization>
- </CPU>
- </CPUList>
- <MemoryList>
- <Memory>
- <memoryDescription>DDR Memory</memoryDescription>
- <memoryUsage>
- 80.148438</memoryUsage>
- <memoryAvailable>
- 33.449219</memoryAvailable>
- </Memory>
- </MemoryList>
- </DeviceStatus>
Листинг программы
- #!/usr/bin/python3
- import requests
- import sys
- import readinifile as readini
- from xml.etree import cElementTree as ET
- r = requests.get('http://'+readini.getip(sys.argv[1])+'/status', auth=(readini.getlogin(sys.argv[1]),readini.getpassword(sys.argv[1])), stream=True)
- root = ET.fromstring(r.text)
- for child in root.iterfind('.//'):
- print (child.tag, child.keys(), child.items(), child.text)
Решение задачи: «Парсинг xml файла»
textual
Листинг программы
- root@raspberrypi:/home/pi/scripts# ./test_status.py
- 33.449219
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д