4
나는 다음과 같은 형식으로 일부 XML을 구문 분석을 시도하고있다 :LXML eTree iterparse 깊이
<label>
<name></name>
<sometag></sometag>
<sublabels>
<label></label>
<label></label>
</sublabel>
</label>
이
for event, element in etree.iterparse(gzip.GzipFile(f), events=('end',), tag='label'):
if event == 'end':
name = element.xpath('name/text()')
으로 구문 분석 때문에
의 빈 이름 변수를 생성<sublabels>
<label></label>
<label></label>
</sublabel>
질문 :
iterparse의 깊이를 설정하거나 빈 레이블인지 확인하는 것 이외에 하위 레이블을 무시하는 방법이 있습니까? , 대체 솔루션으로
name = None
level = 0
for event, element in etree.iterparse(gzip.GzipFile(f), events=('end', 'start'), tag='label'):
# Update current level
if event == 'start': level += 1;
elif event == 'end': level -= 1;
# Get name for top level label
if level == 0:
name = element.xpath('name/text()')
전체 파일을 구문 분석에 XPath를 사용
파일이 큽니다. 한 번에 구멍을 파싱하는 것은 옵션이 아닙니다. – abruski