Ich habe einen TEI-codierten XML-Datei mit Einheiten wie folgt:Verfahrgeschwindigkeit TEI in Python 3, Text kommt leer für einige Einheiten
<sp>
<speaker rend="italic">Sampson.</speaker>
<ab>
<lb n="5"/>
<hi rend="italic">Gregory:</hi>
<seg type="homograph">A</seg> my word wee'l not carry coales.<lb n="6"/>
</ab>
</sp>
<sp>
<speaker rend="italic">Greg.</speaker>
<ab>No, for then we should be Colliars.
<lb n="7" rend="rj"/>
</ab>
</sp>
Die vollständige Datei ist sehr groß, aber kann hier abgerufen werden: http://ota.ox.ac.uk/desc/5721. Ich versuche Python 3 zu verwenden, um das XML zu durchlaufen und den ganzen Text zu erhalten, der mit dem Tag verbunden ist, wo der Dialog gefunden wird.
import xml.etree.ElementTree as etree
tree = etree.parse('romeo_juliet_5721.xml')
doc = tree.getroot()
for i in doc.iter(tag='{http://www.tei-c.org/ns/1.0}ab'):
print(i.tag, i.text)
>>> http://www.tei-c.org/ns/1.0}ab
>>>
>>> {http://www.tei-c.org/ns/1.0}ab No, for then we should be Colliars.
Der Ausgang fängt die gerade fein Einheiten aber nicht erkennt, wie der Text des ersten ab „mein Wort wee'l nicht coales tragen“. Wenn es in einem anderen Element ist, sehe ich es nicht. Ich habe darüber nachgedacht, das gesamte Element in eine Zeichenkette umzuwandeln und den Elementtext mit Regex zu erhalten (oder durch Entfernen aller XML-Tags), aber ich würde lieber verstehen, was hier passiert. Vielen Dank für Ihre Hilfe.