ElementTree を使用して Python で名前空間を含む XML を解析する
ElementTree を使用して Python で名前空間を含む XML を解析する場合、名前空間がXML で使用されるプレフィックスは明示的には使用されません
問題:
ユーザーには次の XML があります:
<rdf:RDF ...> <owl:Class> <rdfs:label>...</rdfs:label> ... </owl:Class> </rdf:RDF>
デフォルトの名前空間で ElementTree を使用して XML を解析しようとしたとき処理中、次のエラーが発生します返された値:
SyntaxError: prefix 'owl' not found in prefix map
解決策:
このエラーを解決するには、XML の解析を担当する ElementTree メソッドに明示的な名前空間マッピングを提供する必要があります。これは、find() メソッドの名前空間引数に辞書を渡すことで実現できます。
namespaces = {'owl': 'http://www.w3.org/2002/07/owl#'} root = tree.getroot() root.findall('owl:Class', namespaces)
名前空間辞書を指定することで、ElementTree パーサーは名前空間プレフィックス ('owl') を正しいものと照合できます。名前空間 URL。owl:Class ノードを正常に取得できるようにします。
追加考慮事項:
以上がPython の ElementTree で名前空間付き XML を解析するときに発生する「プレフィックス 'owl' がプレフィックス マップに見つかりません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。