【问题标题】:python parse special character in lxmlpython解析lxml中的特殊字符
【发布时间】:2014-03-13 00:14:14
【问题描述】:

在我的 xml 中有这一行

<url>http://www.modeluxproperties.com/?act=list_web&m=search&purpose=sale&project=&type=32&beds=&lop=&Submit.x=37&Submit.y=20</url>

当我这样做时:

self.doc=etree.parse(xmlFile)

我在那一行遇到了这个错误:

lxml.etree.XMLSyntaxError: EntityRef: expecting ';', line 5, column 56

【问题讨论】:

  • 它将 URL 中的 & 符号解析为 XML 实体。我认为 & 符号应该是 URL 编码的——尝试用 '&' 替换所有的 '&'
  • @Kasapo 谢谢,请写一个答案接受它
  • 我个人怀疑这是否足够。例如,&amp;lt;&amp;gt;、... 需要翻译为 wel(转为 &amp;lt;&amp;gt;)。大多数编程语言都有库可以做到这一点。可能也是python,虽然我不知道这些。
  • @CommuSoft - URL 周围的“”是完全有效的 XML 字符,不应将它们表示为 XML 实体。原因是 XML 解析器将 &lt;url&gt; 解析为 XML 元素而不是纯文本(这是使用 XML 实体所做的)。但是,如果尖括号应该在 URL 中或 XML 元素中的任何位置,那么是的,它们也需要被编码为 XML 实体。使用 URL 编码或 XML 编码函数/库应该注意编码 & 以及其他无效的 XML 实体。

标签: python xpath scrapy


【解决方案1】:

它将 URL 中的 & 符号解析为 XML 实体。我认为 & 符号应该是 URL 编码的 - 尝试用 &amp;amp; 替换所有 &amp;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2021-12-21
    • 2021-07-16
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多