ホームページ >バックエンド開発 >Python チュートリアル >ElementTree の findall メソッドと find メソッドを使用するときに XML 名前空間を無視するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。