1
我有實體TEI編碼的XML文件,如下所示:穿越TEI在Python 3,短信來了空的一些實體
<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>
完整文件是非常大的,但可以在這裏進行訪問:http://ota.ox.ac.uk/desc/5721。我試圖使用Python 3來遍歷xml並獲取與標籤關聯的所有文本,這是對話的地方。
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.
輸出捕獲的實體很好,但不承認「我的詞wee'l不帶coales」作爲第一個ab的文本。如果它在一個不同的元素內,我沒有看到它。我曾想過將整個元素轉換爲字符串,並使用正則表達式(或通過剝離所有xml標籤)獲取元素文本,但我寧願瞭解這裏發生了什麼。感謝您的任何幫助,您可以提供。