ElementTree の要素の場所の名前空間を無視する方法: 簡単な解決策?
ElementTree の要素の場所の名前空間を無視する
ElementTree の findall メソッドを使用して、名前空間を認識する XML ドキュメント内の要素を検索すると、次のようになります。各タグの名前空間を指定するために必要です。これにより、不都合が生じる可能性があります。この記事では、find や findall などの ElementTree 検索メソッドで名前空間を無視する方法を紹介します。
問題:
提供されたサンプル コードで示されているように、tree.findall( "DEAL_LEVEL/PAID_OFF") 呼び出しは、XML ファイル内の名前空間が無視されているため、None を返します。各タグに {http://www.test.com} を追加するのは不便な回避策です。
解決策:
XML ドキュメントを変更する代わりに、次のことをお勧めします。それを解析し、結果内のタグを操作します。これにより、複数の名前空間と名前空間エイリアスの処理が可能になります。
次の Python コードは、解決策を提供します:
<code class="python">from io import StringIO # for Python 2 import from StringIO instead import xml.etree.ElementTree as ET # instead of ET.fromstring(xml) it = ET.iterparse(StringIO(xml)) for _, el in it: _, _, el.tag = el.tag.rpartition('}') # strip ns root = it.root</code>
説明:
この解決策は、 ET.iterparse 関数。XML ドキュメントを段階的に処理します。反復中に、rpartition('}') を使用して名前空間を削除することにより、各要素 el のタグが変更されます。これにより、すべてのタグから名前空間が効果的に削除されます。
利点:
このアプローチにより、要素を検索するときに名前空間の接頭辞を無視できるため、プロセスが簡素化され、要素を検索する必要がなくなります。名前空間を手動で指定します。
以上がElementTree の要素の場所の名前空間を無視する方法: 簡単な解決策?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









