【发布时间】:2012-02-22 03:57:15
【问题描述】:
假设我有一个类似的 XML 文件
<?xml version="1.0" encoding="utf-8"?>
<items>
<?xml version="1.0" encoding="utf-8"?>
<items>
<item>
<price>1500</price>
<info> asfgfdff</info>
</item>
</items>
如何解析,以便解析器选择最近更新的 xml 树?
【问题讨论】:
-
您是从字面上重复前两行还是只是复制和粘贴错误?
-
我可能弄错了,但我很确定 xml 文件不能有多个声明 (...?>),除非它们包含在 CDATA 部分中。
-
是的,我从字面上重复它。每当我爬过一个网站时,我都会将它保存在一个文件中。所以,当我尝试解析它时,我会收到这个错误
lxml.etree.XMLSyntaxError: XML declaration allowed only at the start of the document, line 2, column 6 -
我的意思是提取的数据是这样保存的
-
就像 João Lourenço 所说,双 XML 序言声明不是有效的 XML。这正是 lxml 解析器告诉您的内容:“”,它在抱怨第二个 xml 声明。这更像是一种 XML 汤,因此在您更正保存数据的方式之前,您将无法解析它。