2016-11-14 93 views
0

我的任务是抓取一个kml文件,提取1个标记值并将其发送到Mongo中的geojson。 我将文件作为二进制请求对象获取。在Python中提取XML标记字符串的有效方法

doc = requests.get(file).content #returning a XML tree. 

我的问题是找到“最好”的方法来从标签中获取值。考虑到我有多个需要按分钟扫描的源代码,所以即使一次运行可能不需要那么长时间,也会累积(意识到实际的文件导入将比任何提取过程花费更多)。

我试过的方法是BeautifulSoup,切片和正则表达式。他们都工作得很好,但我很想得到一些关于替代品和/或优点和缺点的意见。

def extractsubstring_soup(doc, start): 
     soup = BeautifulSoup(doc, 'lxml-xml') 
     return soup.start.string 

    def extractsubstring_re(doc, start, stop): 
     return re.search('%s(.*)%s' %(start, stop), a).group(1) 

    def extractsubstring_slice(doc,start, stop): 
     substart = doc.index(start) + len(start) 
     subend = doc.index(end) 
     return doc[substart:subend] 

回答

0

出于性能考虑,您可以使用http://lxml.de/和使用XPath查询,提取所需的信息。

BeautifulSoup是一个围绕不同库的包装 - 你可以选择哪一个 - 但通常是解析HTML,而不是XML。

相关问题