使用 ElementTree 的 findall 和 find 方法時如何忽略 XML 名稱空間?

Susan Sarandon
發布: 2024-10-27 06:46:29
原創
460 人瀏覽過

How can I ignore XML namespaces when using ElementTree's findall and find methods?

忽略ElementTree 中的XML 命名空間

ElementTree 的findall 和find 方法在從包含命名空間的XML 檔案中尋找元素時需要命名空間感知方法。但是,如果大量標籤需要命名空間,這可能會很麻煩。

使用 Iterparse 忽略命名空間

要忽略命名空間,我們可以利用 ElementTree 的 iterparse 方法。操作方法如下:

<code class="python">from io import StringIO  # Python 2: import from StringIO instead

import xml.etree.ElementTree as ET

# Parse the XML file
it = ET.iterparse(StringIO(xml))

# Strip namespace from tags
for _, el in it:
    _, _, el.tag = el.tag.rpartition('}') # strip ns

root = it.root</code>
登入後複製

此方法透過刪除命名空間來修改標籤名稱,因此無需明確指定命名空間即可更輕鬆地定位元素。正如此處討論中所建議的,此技術在處理多個命名空間和別名方面提供了更大的靈活性。

以上是使用 ElementTree 的 findall 和 find 方法時如何忽略 XML 名稱空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!