我从主机接收以下xml消息(在下面的代码中为data_back,我需要解析该消息以获取VersionRequest。
b'\x02
<H_VersionRequest>
<ClientId>Machine - 123</ClientId>
<VersionRequest>1.2.3</VersionRequest>
<H_VersionRequest>
\x03'
我写了以下代码;
import xml.etree.ElementTree as ET
# data received from host is saved to data_back
xml = str(data_back)
tree = ET.fromstring(xml)
root = tree.getroot()
print(root)
我收到以下错误;
追踪(最近通话):在第10行中输入文件“ C:/ Users / llovely / PycharmProjects / Test / Libraries / test4 msg inc.py”树= ET.fromstring(xml)XML中的文件“ C:\ Users \ llovely \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ xml \ etree \ ElementTree.py”,第1320行parser.feed(文本)xml.etree.ElementTree.ParseError:格式不正确(无效令牌):第1行,第1列
有人可以建议我如何从这种xml格式提取数据吗?
如果确定XML的每个末端只有一个字节,那么只需将字符串的其余部分作为切片:
import xml.etree.ElementTree as ET
# Decode from bytes to str, don;t call str on bytes
xml = data_back.decode()[1:-1]
tree = ET.fromstring(xml)
root = tree.getroot()
print(root)
请注意,问题中的xml格式不正确,但是我认为那是一个错字。