我使用lxml来读取一个xml文件,它的结构如下所示 在
<domain>http://www.trademe.co.nz</domain>
<start>http://www.trademe.co.nz/Browse/CategoryAttributeSearchResults.aspx?search=1&cid=5748&sidebar=1&rptpath=350-5748-4233-&132=FLAT&134=&153=&29=&122=0&122=0&59=0&59=0&178=0&178=0&sidebarSearch_keypresses=0&sidebarSearch_suggested=0</start>
我的python代码是:
^{pr2}$当我运行它时
entityref: expecting ';'
错误
但是,当我删除xml文件中的符号时,一切都正常。在
我怎样才能解决这个错误?在
问题是这不是有效的XML。在XML中,
&
符号总是以entity reference开头,比如Ӓ
代表字符U+04D2
(又名Ӓ
),字符"
,或者文档/DTD/schema中定义的某个自定义实体。*如果你想把一个字面值
&
放入一个字符串中,你必须用别的东西来代替它,通常是&
,它是与字元的字符实体引用。在因此,如果您确定文档中没有实际的实体引用,只有未转义的和号,您可以非常简单地修复它:
然而,一个更好的解决方案,如果可能的话,就是修复任何生成错误XML的程序。在
*这有点误导,这是事实;数字字符引用实际上不是实体引用。另外,像
"
或&
这样的字符实体引用与任何其他具有替换文本的引用相同,这些实体恰好是由基于XML/HTML的dtd隐式定义的。但是lxml
与大多数XML软件一样,使用术语“实体引用”比标准稍微宽泛一些。在将xml文件中的
&
替换为&
,否则您的xml不符合xml标准。在相关问题 更多 >
编程相关推荐