すべての子を含むXML要素のテキスト情報のMD5ハッシュをチェックしようとしています。これは、hipayサービスと対話するために必要です。
def CheckMD5(tree):
m = hashlib.md5()
body = tree.find('result')
m.update(ET.tostring(ET.ElementTree(body).getroot(), method="html"))
return tree.find('md5content').text == m.hexdigest()
完全なコード: https ://github.com/fabiosantoscode/python-hipay/blob/master/hipay.py#L566
ElementTree.tostring
私の問題は、 withを呼び出すとmethod="xml"
、ElementTreeが空の要素の終了タグを折りたたむが、使用するmethod="html"
と大文字が失われることです。例:
>>> ET.tostring(ET.fromstring('<rt><a></a><CapName>asd</CapName></rt>'), method='xml')
'<rt><a /><CapName>asd</CapName></rt>'
>>> ET.tostring(ET.fromstring('<rt><a></a><CapName>asd</CapName></rt>'), method='html')
'<rt><a></a><CapName>asd</capname></rt>'
>>>
ノート:
このXMLドキュメントを変更する必要はまったくありません<result>
。要素の文字列データを抽出するだけです。私がこれを行うことを可能にする他の図書館がある場合は、示してください。