Guten Morgen alle; Ich versuche, SGML-Dokumente mit diesem Code zu extrahieren, aber ich habe leere Dokumente als Ergebnis, das ist mein Python-Code:Python text.strip() gibt leer
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()
Und dies ist eine Struktur eines Beispieldokument:
<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>
ich möchte den Inhalt zwischen <TEXT>
Etiketten für jedes Dokument zwischen <DOC>
und </DOC>
bekommen, stattdessen habe ich leere Dokumente bekam :( Bitte, gibt es jemanden, der mir helfen kann? vielen Dank.
für die Beantwortung Danke verwenden, ich werde wie dies versuchen. –