簡體   English   中英

如何在 python 中使用 ElementTree 獲取元素的 xml:id

[英]How do I get the xml:id of an element using ElementTree in python

很抱歉,如果這是一個非常基本的問題,但我已經在這個問題面前坐了幾個小時了,就是無法讓它發揮作用。

我正在使用英國國家語料庫(這些文件是 XML 格式的),我想提取這些文件中不同人的屬性。 我正在使用的部分的結構如下:

<bncDoc>
<teiHeader>
<profileDesc>
<particDesc n="C196">
                <person ageGroup="X" xml:id="PS21Y" role="unspecified" sex="f" soc="UU" dialect="NONE" firstLang="EN-GBR" educ="X">
                    <persName>j. hammond</persName>
                    <occupation>interviewer</occupation>
                </person>
                <person ageGroup="X" xml:id="PS220" role="unspecified" sex="m" soc="UU" dialect="XIS" firstLang="EN-GBR" educ="X">
                    <persName>Bhagan</persName>
                </person>
</particDesc>
</profileDesc>
</teiHeader>
</bncDoc>

我正在嘗試提取“person”元素的“id”、“sex”、“soc”和“ageGroup”。 但我只是不知道它如何與那些“xml:id”一起工作。 我嘗試這樣做的方式(如下所示)不起作用。 它適用於“sex”、“soc”和“ageGroup”,但不適用於“xml:id”。 有誰知道,如何讓它發揮作用? 這對我有很大幫助: :)

for i in root.findall('teiHeader/profileDesc/particDesc/person'):
            tmp = []
            tmp.append(i.get('id'))
            tmp.append(i.get('sex'))
            tmp.append(i.get('soc'))
            tmp.append(i.get('ageGroup'))

如果你使用它就有效

i.get('{http://www.w3.org/XML/1998/namespace}id')

這看起來有點難看,但它與以下事實有關xml:是綁定到http://www.w3.org/XML/1998/namespace URI 的特殊命名空間前綴。 請參閱https://www.w3.org/XML/1998/namespace

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM