我试图从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
1022 2.45 0.00 2.55-55
150
1023-20480.00 0.00 5580.80-55
150
04-20480.00 40.96 41943.04-55
150
05-20480.00 10.24 0.08-55
150
06-20480.00 0.00-20480.00-55
150
07-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
我希望有人能帮我解决这个问题。在
谢谢