gpt4 book ai didi

Python直接从网址解析xml

转载 作者:数据小太阳 更新时间:2023-10-29 02:59:08 26 4
gpt4 key购买 nike

嘿。我试图找到一种方法,但我做不到。我已经在 python 中设置了一个 xml.sax 解析器,当我读取一个本地文件(例如 calendar.xml)时它工作得很好,但我需要从一个网址读取一个 xml 文件。

我想如果我这样做会行得通:

toursxml='http://api.songkick.com/api/3.0/artists/mbid:'+mbid+'/calendar.xml?apikey=---------'
toursurl=urllib2.urlopen(toursxml)
toursurl=toursurl.read()
parser.parse(toursurl)

但事实并非如此。我确定有一个简单的方法,但我找不到。

所以是的,我可以轻松转到 url 并下载文件并通过执行打开它

parser.parse("calendar.xml")

作为解决方法,我将其设置为读取文件并在本地创建文件,关闭文件,然后读取它。但是你可以猜到它慢得要命。

有没有人可以直接读取xml?另请注意,url 名称未以“.xml”结尾,因此稍后可能会出现问题

最佳答案

首先,您的示例混淆了。请不要重复使用变量。

toursurl= urllib2.urlopen(toursxml)
toursurl_string= toursurl.read()
parser.parseString( toursurl_string )

将整个文件读入一个字符串,命名为toursurl_string

要解析字符串,您可以使用 parseString(toursurl_string) 方法。

http://docs.python.org/library/xml.sax.html#xml.sax.parseString

如果要结合读取和解析,则必须传递“流”或文件名进行解析。

toursurl= urllib2.urlopen(toursxml)
parser.parse(toursurl)

关于Python直接从网址解析xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com