在Python中提取XML标记字符串的有效方法

时间:2016-11-14 02:16:41

标签: python xml mongodb kml geojson

我的任务是获取kml文件,提取1个标记值并将其发送到geojson中的Mongo。 我将文件作为二进制请求对象。

    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]

1 个答案:

答案 0 :(得分:0)

为了提高性能,您可以使用http://lxml.de/并使用XPath查询来提取所需的信息。

BeautifulSoup是不同库的包装器 - 您可以选择哪一个 - 但通常是用于解析HTML而不是XML。