Найти - Пользователи
Полная версия: простой парсинг XML
Начало » Python для экспертов » простой парсинг XML
1
Sawer
Помогите вытянуть в файл (текстовый) даные из такой XML:
<?xml version=“1.0” encoding=“UTF-8” ?>
- <device netaddr=“756033”>
- <measuringpoint>
<measuringchannel name=“Данные 1” code=“100” tag=“Значение 1” enable=“true” />
<measuringchannel name=“Данные 2” code=“300” tag=“Значение 2” enable=“true” />
<measuringchannel name=“Данные 3” code=“400” tag=“Значение 3” enable=“true” />
</measuringpoint>
</device>
в виде текстового файла
N = 756033
Данные 1 = Значение 1
Данные 2 = Значение 2
и т.д…

И что добавить, для обхода нескольких таких же URL по кругу
tabajara
Шось таке:
import xml.sax
import xml.sax.handler
class MyHandler(xml.sax.handler.ContentHandler):
  def __init__(self):
    self.inTitle = 0
    self.mapping = {}
    self.measuringchannels = []
  def startElement(self, name, attributes):
    if name == "device":
      self.netaddr = attributes["netaddr"]
    elif name == "measuringchannel":
      self.name = attributes["name"]
      self.code = attributes["code"]
      self.tag = attributes["tag"]
      self.enable = attributes["enable"]
  def endElement(self, name):
      if name == "device":
          self.mapping[self.netaddr] = self.measuringchannels
      elif name == "measuringchannel":
          self.measuringchannels.append({'name':self.name, 'tag': self.tag, 'code': self.code, 'enable': self.enable})
parser = xml.sax.make_parser()
handler = MyHandler()
parser.setContentHandler(handler)
parser.parse("my_xml.xml")
print handler.mapping
tabajara
Sawer
И что добавить, для обхода нескольких таких же URL по кругу
То як?
Sawer
спасибо! буду пробовать!
Sawer
вышло в таком виде! как обработать?
{u'756033': [{'code': u'31110100', 'enable': u'true', 'tag': u'123214435', 'name
': u'\u0421\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u
0440 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0441\u0447\u0435\u0442\u0447\u0
438\u043a\u0430'}, {'code': u'31110300', 'enable': u'true', 'tag': u'43253246',
'name': u'\u0421\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0
441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0441\u0447\u0435\u0442\u0447\u04
38\u043a\u0430'}, {'code': u'31110400', 'enable': u'true', 'tag': u'85474563', '
name': u'\u0412\u0435\u0440\u0441\u0438\u044f \u041f\u041e \u044d\u043b\u0435\u0
43a\u0442\u0440\u043e\u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430'}]}
tabajara
Шо там обробляти? Ти не можеш витягнути дані з словника? Sawer, може попробуй вивчити пітон?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB