使用BeautifulSoup读取XML二进制数据

时间:2019-04-14 21:13:05

标签: xml beautifulsoup raw-data

美好的一天,

我正在使用BeautifulSoup解析一个XML文件,该文件的标签类似于下面的示例,其中包含一些二进制数据:

<data length=1234 encoding="x-modified">
:M\ANEG9&3I6%1I8CN!68<ID(E]*%N]Y/J;:6EYM6&N:9<E9).YA*I:94*]9O.[Y
R;59Z0LEWY;74*:E!5YWM8KE[AE;48:5N"I74*:H(E#L79X57ZG1'E:85=YVE68,
:3=5=:B&FVN-Y(EU;UJ:*28FSQ#F6,ID'V:EE-JVN=APE:9X&8EYFL<67TI$DBR0
........
</data>

标签,属性和二进制数据全部读取错误,如下所示:

<data>1234 encoding="x-modified"&gt;
:M\ANEG93I6%1I8CN!68<ID>(E]*%N]Y/J;:6EYM6<E9>).YA*I:94*]9O.[Y
R;59Z0LEWY;74*:E!5YWM8KE[AE;48:5N"I74*:H(E#L79X57ZG1'E:85=YVE68,
:3=5=:B(EU;UJ:*28FSQ#F6,ID'V:EE-JVN=APE:9X8EYFL</E9></ID></data>

请注意当数据中遇到“ <”时如何截断数据。另外请注意,读取标签时会删除属性“ length”。

感谢任何可以解决此问题的想法。

谢谢。

1 个答案:

答案 0 :(得分:0)

您将其描述为XML文件,但事实并非如此。

数据是一团糟(在XML中,文本节点中不允许使用“ <”进行转义),尽管BeautifulSoup会尽力创建混乱的订单,但这并不是魔术,而且显然失败了此示例。

我的建议是使用XML或JSON之类的标准进行数据传输,而不是使用没有正式定义的定义不正确的近似值。除非您有格式说明,否则您不能可靠地解析数据文件。