python 解析url上的xml_用python从URL解析XML

我试图从url解析xml。在

最初我的代码是这样的:from xml.dom import minidom

xmldoc = minidom.parse('all.xml')

Sensor0Elm = xmldoc.getElementsByTagName('t0')

Sensor1Elm = xmldoc.getElementsByTagName('t1')

Sensor2Elm = xmldoc.getElementsByTagName('t2')

Sensor0Elm = Sensor0Elm[0]

Sensor1Elm = Sensor1Elm[0]

Sensor2Elm = Sensor2Elm[0]

Sensor0 = Sensor0Elm.childNodes[0].data

Sensor1 = Sensor1Elm.childNodes[0].data

Sensor2 = Sensor2Elm.childNodes[0].data

Sensor0 = float(Sensor0)

Sensor1 = float(Sensor1)

Sensor2 = float(Sensor2)

在这个例子中,我要解析的xml文件在我的本地硬盘上,结果非常完美!在

下一步是从url解析xml。allnet的传感器会不断地将xml数据插入到网络中,该网络通过可访问的浏览器访问以下url:192.168.60.242/xml

这是嵌入的xml:

^{pr2}$

所以我把代码改成:import urllib

import time

while True:

### XML Extraction ###

from xml.dom import minidom

allxml = urllib.urlopen("http://192.168.60.242/xml")

allxml_string = allxml.read()

allxml.close()

print allxml_string

xmldoc = minidom.parseString(allxml_string)

Sensor0Elm = xmldoc.getElementsByTagName('t0')

Sensor1Elm = xmldoc.getElementsByTagName('t1')

Sensor2Elm = xmldoc.getElementsByTagName('t2')

Sensor0Elm = Sensor0Elm[0]

Sensor1Elm = Sensor1Elm[0]

Sensor2Elm = Sensor2Elm[0]

Sensor0 = Sensor0Elm.childNodes[0].data

Sensor1 = Sensor1Elm.childNodes[0].data

Sensor2 = Sensor2Elm.childNodes[0].data

Sensor0 = float(Sensor0)

Sensor1 = float(Sensor1)

Sensor2 = float(Sensor2)

不幸的是它不起作用。如果执行,将返回以下内容:

(通过使用print()函数,可以将xml正确插入te程序。唯一的问题似乎是parse函数的进一步处理。)

请看下面的错误信息Python 2.7.3 (default, Mar 18 2014, 05:13:23)

[GCC 4.6.3] on linux2

Type "copyright", "credits" or "license()" for more information.

>>> ================================ RESTART ================================

>>>

ALL4000

0 1.09 0.00 2.55-55150102

1 2.52 2.32 10487.04-55

150
102

2 2.45 0.00 2.55-55

150
102

3-20480.00 0.00 5580.80-55

150
0

4-20480.00 40.96 41943.04-55

150
0

5-20480.00 10.24 0.08-55

150
0

6-20480.00 0.00-20480.00-55

150
0

7-20480.00 0.00 0.00-551500

8-20480.00 336855.04 1342177.28-551500

9-20480.00 0.00 0.00-551500

10-20480.00 0.00 0.00-551500

11-20480.00 0.00 0.00-551500

12-20480.00 0.00 0.00-551500

13-20480.00 0.00 0.00-551500

14-20480.00 0.00 0.00-551500

15-20480.00 0.00 0.00-551500

100

200

300

400

500

600

700

800

900

1000

1100

1200

1300

1400

1500

1600

00

10

20

30

2482542552551281255255

06.08.200606:45:461-1100

18856004250482.89ALL4000

53

Traceback (most recent call last):

File "/home/pi/Desktop/sig_v3.py", line 14, in

xmldoc = minidom.parseString(allxml_string)

File "/usr/lib/python2.7/xml/dom/minidom.py", line 1930, in parseString

return expatbuilder.parseString(string)

File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 940, in parseString

return builder.parseString(string)

File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 223, in parseString

parser.Parse(string, True)

ExpatError: mismatched tag: line 1, column 86

我希望有人能帮我解决这个问题。在

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值