나는 다음과 같은 XML을 가지고있다. highlight
태그는 텍스트 태그보다 1 단계 아래에 있음을 유의하십시오. 조건은 다음과 같습니다.순회 이상 XML, LXML
- 모든 단락에 대해 추가 공간을 추가하십시오.
highlight
태그의 부모를 반복하는 동안 중단 태그가 발견되면 공백을 추가하십시오.- 추출 텍스트 만 내가했던 무엇
highlight
태그
에 해당하는 것은 :
text="" #initialize an empty string
for p in lxml_tree.findall('para'): #itertate over each paragraph (all paragarpahs have the same tag name para)
for r in p.findall("Run"): #iterate over each run
for a in r.iter(tag="highlight"): #search for highlight tag
for b in a.iterancestors(): #go back to the parents
if b.tag=="break": #if break found
text+=" " # add a space
elif b.tag=="text": # if text found
text+=''.join(b.text) #add text
위 iterancestors는 루트 노드에있는 모든 방법을 이동할 때 작동하지 않습니다. 부모님을 어떻게 반복 할 수 있습니까? 즉 Runprop
, break
및 text
?? 나는 모든 텍스트이 비슷한을 구현하고 그 일을 ..
편집 1 : 그냥 결함 로직 위
, 나는 오히려 break
첫째, 다음 검색, 단락의 각 Run
반복 것 Runprop
내에 강조 표시가 있는지 확인한 다음 부모 형제의 텍스트를 추출합니다.
오타가 있거나 'highlight'에 닫는 태그가 없습니까? – Anzel
오, 잠깐만 기다려주십시오, 자기 마감 태그입니다 .. 고칠 것입니다. –
'runprop'과'RunProp'도 역시 ... 대소 문자가 일치하지 않습니다 :) – Anzel