0
안녕하세요 여러분; 이 코드를 사용하여 SGML 문서를 추출하기 위해 노력하고있어,하지만 난 결과로 빈 문서를 가지고,이 내 파이썬 코드 :python text.strip() 빈을 반환합니다.
from os import listdir
from os import makedirs
from os.path import isfile, join
from re import sub
import ast
import numpy
import xml.etree.ElementTree as ElementTree
from lxml import etree
parser = etree.XMLParser(recover=True) # escaping malformed strings
pathCol="C:/Users/Desktop/FR"
pathExtr="C:/Users/Desktop/FRExt"
i=0
for f in listdir(pathCol):
with open(join(pathCol,f), 'r') as f: # Reading file
xml = f.read()
xml = '<ROOT>' + xml + '</ROOT>' # Let's add a root tag
root = etree.fromstring(xml, parser=parser)
for doc in root:
try :
docNo=doc.find('DOCNO').text.strip()
except :
i+=1
docNo="LATIMES"+str(i)
try :
text=doc.find('TEXT').text.strip()
except :
try :
text=doc.find('HEADLINE').text.strip()
except :
try :
text=doc.find('GRAPHIC').text.strip()
except :
text=" "
fi=open(join(pathExtr,docNo),'w')
fi.write(text)
fi.close()
print("%s OK" %(docNo))
f.close()
그리고 이것은 샘플 문서의 구조 :
<DOC>
<DOCNO> LA010189-0001 </DOCNO>
<DOCID> 1 </DOCID>
<DATE>
<P>
January 1, 1989, Sunday, Home Edition
</P>
</DATE>
<SECTION>
<P>
Book Review; Page 1; Book Review Desk
</P>
</SECTION>
<LENGTH>
<P>
1206 words
</P>
</LENGTH>
<HEADLINE>
<P>
NEW FALLOUT FROM CHERNOBYL;
</P>
<P>
THE SOCIAL IMPACT OF THE ...
</P>
</HEADLINE>
<BYLINE>
<P>
By James E. ...
</P>
</BYLINE>
<TEXT>
<P>
The onset of the new Gorbachev policy of glasnost,...
</P>
...
</TEXT>
</DOC>
<DOC>
... etc
</DOC>
나는 나를 도울 수있는 사람이 대신 내가 빈 문서 :( 하시기 바랍니다있어, <DOC>
및 </DOC>
사이의 각 문서에 대한 <TEXT>
라벨 사이의 콘텐츠를 원하는? 덕분에 많이.
응답 해 주셔서 감사합니다
ET.tostring()
TLDR를 사용할 수 있습니다. –