xml ファイルを開いて、特定のタグから値を取得しようとしています。私はこれを何度も行ってきましたが、この特定の xml がいくつかの問題を引き起こしています。xml ファイルのセクションは次のとおりです。
<?xml version='1.0' encoding='UTF-8'?>
<package xmlns="http://apple.com/itunes/importer" version="film4.7">
<provider>filmgroup</provider>
<language>en-GB</language>
<actor name="John Smith" display="Doe John"</actor>
</package>
そして、これが私のpythonコードのサンプルです:
metadata = '/Users/mylaptop/Desktop/Python/metadata.xml'
from lxml import etree
parser = etree.XMLParser(remove_blank_text=True)
open(metadata)
tree = etree.parse(metadata, parser)
root = tree.getroot()
for element in root.iter(tag='provider'):
providerValue = tree.find('//provider')
providerValue = providerValue.text
print providerValue
tree.write('/Users/mylaptop/Desktop/Python/metadataDone.xml', pretty_print = True, xml_declaration = True, encoding = 'UTF-8')
これを実行すると、プロバイダー タグまたはその値が見つかりません。削除するxmlns="http://apple.com/itunes/importer"
と、すべてが期待どおりに機能します。私の質問は、この名前空間にまったく興味がないので、lxml を使用して必要なタグ値を取得するにはどうすればよいですか?