ElementTree モジュールを使用して Python で XML ファイルを操作する場合、名前空間に関係なく要素。ただし、名前空間を含む XML ファイルを扱う場合、デフォルトの動作では、要素を検索するときに名前空間の接頭辞が考慮されます。これは、特に多数の名前空間を扱う場合に不便になる可能性があります。
この問題を解決するには、XML ドキュメントを変更して名前空間を削除できますが、これは常に実現できるとは限りません。あるいは、XML ドキュメントを解析し、名前空間を無視するように結果のタグを変更することもできます。
<code class="python">from io import StringIO # Python 2: from StringIO import StringIO import xml.etree.ElementTree as ET # Use iterparse to retain lazy parsing it = ET.iterparse(StringIO(xml)) for _, el in it: _, _, el.tag = el.tag.rpartition('}') # Strip namespace root = it.root</code>
このアプローチにより、各タグの前に明示的に追加することなく、複数の名前空間を簡単に処理できます。
以上が以下に、名前空間の無視の問題に焦点を当てた、提供された Python ElementTree コード スニペットに適合する質問ベースのタイトルをいくつか示します。 * 名前空間の短所を持たずに XML ファイル内の要素を検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。