2011-08-17 2 views
5

DOCX Word 문서에서 테이블의 내용을 추출하려고하는데, 저는 xml/xpath를 처음 사용했습니다. 오류 :DOCX Word 문서에서 파이썬으로 테이블 추출하기

from docx import * 
document = opendocx('someFile.docx') 
tableList = document.xpath('/w:tbl') 

이는 "정의되지 않은 네임 스페이스 접두사 XPathEvalError"트리거합니다. 스크립트를 개발하는 동안 기대할 수있는 첫 번째 도구 일 것이라고 확신합니다. 죄송 합니다만 python-docx에 대한 자습서를 찾을 수 없습니다.

테이블 추출의 예를 제공해 주시겠습니까?

+0

당신이 DOCX 되었나요? URL을 제공 할 수 있습니까? –

+0

당신은 python xml 튜토리얼을 찾아야합니다. opendocx 함수는 소스에 따라 xml 문서를 반환합니다. python-docx 라이브러리의 나머지 함수는 http://lxml.de/에서 lxml python 라이브러리를 감싸는 래퍼입니다. –

+0

@Spencer Rathbun : 다음 코드는 에러를 발생시키지 않지만, 이상하게도 [] tableList = document.xpath ('// tbl')' 'print tableList' 이건 내가 할 수없는 일부 DOCX 기능인가요? 알다? – mgierdal

답변

3

일부 작업을 수행 한 후 올바르게 작동하려면 네임 스페이스가 필요하다는 것을 알게되었습니다. xpath 메서드가 적절한 솔루션입니다. 먼저 전달 된 문서 네임 스페이스가 필요합니다.

lxml xpath method에는 네임 스페이스 관련 세부 정보가 있습니다. 네임 스페이스 사전 전달에 대한 링크 및 기타 세부 정보 링크를 찾습니다.

위의 그의 의견에 mgierdal에 의해 설명 된 바와 같이

:

tblList = document.xpath('//w:tbl', namespaces=document.nsmap) works like a dream. So, as I understand it w: is a shorthand that has to be expanded to the full namespace name, and the dictionary for that is provided by document.nsmap.

관련 문제