2016-11-14 2 views
0

내 작업은 kml 파일을 가져 와서 태그 값 1 개를 추출하여 geojson에서 Mongo로 보냅니다. 파일을 바이너리 요청 객체로 받고 있습니다.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은 다른 라이브러리를 둘러싼 래퍼입니다. 어느 것이 든 선택할 수 있지만 일반적으로 XML이 아닌 HTML을 구문 분석하기위한 것입니다.

관련 문제