[英]XML Module Parsing Differences Between 2.7.6 and 2.7.3 in Python
我正在使用本教程来学习一些Python概念,但是,在尝试使用2.76中的这一行代码时遇到了这个问题。 Dave在monitor.py文件中的视频的53分钟部分使用2.73。
我正在使用这行代码来尝试修复错误...
from xml.etree.ElementTree import parse
反对
import xml.etree.ElementTree import parse
(这是python 2.7.3中的视频所使用的)
但是,当我使用它时,它不起作用。 我得到这个错误。
PS C:\python27> python monitor.py
Traceback (most recent call last):
File "monitor.py", line 28, in <module>
monitor()
File "monitor.py", line 15, in monitor
doc = parse(u)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 656, in parse
parser.feed(data)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1642, in feed
self._raiseerror(v)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1506, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: undefined entity : line 50, column 47
我应该写什么导入代码行,为什么? 我已经尝试过“ as”和“ import”
这是我正在使用的代码。
#monitor.py
import urllib
from xml.etree.ElementTree import parse
candidates = ['4131','4163','4132']
daves_latitude = 41.980262
def distance(lat1, lat2):
'Return distance in miles between two lats'
return 69*(lat1 - lat2)
def monitor():
u = urllib.urlopen('http://ctabustracker.com/bustime/mapgetBusesForRoute.jsp?route=22')
doc = parse(u)
for bus in doc.findall('bus'):
busid = bus.findtext('id')
if busid in candidates:
lat = float(bus.findtext('lat'))
dis = distance(lat, daves_latitude)
print busid, dis, 'miles'
print '-'*10
import time
while True:
monitor()
time.sleep(60)
#XXX INCORRECT, DO NOT USE IT
import xml.etree.ElementTree import parse
错误xml.etree.ElementTree.ParseError: undefined entity  
与您以任何方式导入ElementTree
模块的方式无关。 该行为在Python 2.7.6和2.7.3中相同。
@karthikr与解释该问题的评论中的问题相关联:
默认情况下未为xml定义,请参阅使用(X)HTML实体解析XML 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.