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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!