gpt4 book ai didi

python - 有没有办法从 ElementTree 元素中获取逐字字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 19:03:18 25 4
gpt4 key购买 nike

我正在尝试检查 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.tostringmethod="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>的字符串数据即可。元素。如果还有其他库允许我这样做,请指出。

最佳答案

LH.tostring 不会折叠结束标签:

In [34]: import lxml.etree as ET

In [35]: import lxml.html as LH

In [36]: LH.tostring(ET.fromstring('<rt><a></a><CapName>asd</CapName></rt>'))
Out[36]: '<rt><a></a><CapName>asd</CapName></rt>'

关于python - 有没有办法从 ElementTree 元素中获取逐字字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15504593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com