Доброе утро всем; Я пытаюсь извлечь документы 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>
Я хочу, чтобы получить содержимое между <TEXT>
этикетки для каждого документа между <DOC>
и </DOC>
, а у меня есть пустые документы :( Пожалуйста, есть кто-то может мне помочь? Спасибо большое.
Спасибо за ответ, я буду стараться, как это. –