Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python解析包含命名ISO-8859-1实体的HTML?_Python_Html Parsing_Xhtml - Fatal编程技术网

如何使用Python解析包含命名ISO-8859-1实体的HTML?

如何使用Python解析包含命名ISO-8859-1实体的HTML?,python,html-parsing,xhtml,Python,Html Parsing,Xhtml,我总结一下:minidom似乎不喜欢8859个命名实体;什么是合适的解决方案 以下代码说明了我的情况: sample = """ <html> <body> <h1>Un ejemplo</h1> <p>Me llamo Juan Fulano y Hern&aacute;ndez.</p> </body> </html> """ sample2

我总结一下:minidom似乎不喜欢8859个命名实体;什么是合适的解决方案

以下代码说明了我的情况:

sample = """
  <html>
    <body>
      <h1>Un ejemplo</h1>
      <p>Me llamo Juan Fulano y Hern&aacute;ndez.</p>
    </body>
  </html>
"""
sample2 = sample.replace("&aacute;", "&#225;")

import xml.dom.minidom

dom2 = xml.dom.minidom.parseString(sample2)
dom = xml.dom.minidom.parseString(sample)
我该如何回应?是吗

  • 是否用相应的文字常量替换命名实体?
  • 是否使用minidom以外的解析器?哪个?
  • 不知何故(通过编码分配?)让minidom相信这些命名实体很酷?

说服(X)HTML的作者避开命名实体是不可行的。

xml.dom.minidom
是xml解析器,而不是HTML解析器。因此,它不知道任何HTML实体(只知道XML和HTML共同的实体:
”、


试试。

对于这个问题及其类似的问题,以前有很多答案,例如:谢谢你,Ekhumaro;我太迟钝了,以至于我没有意识到客户真的处于HTML状态,而他将其标记为XML只是我应该忽略的噪音。谢谢,Tim Pietzcker:你的回答是(非常!)快速、准确且接近我所需要的。事实上,我正在使用的数据被宣传为XML;从长远来看,我需要研究如何协调minidom对相关DTD的想法与数据作者的想法。不过,与此同时,我想让你知道,你的话很有帮助:虽然我很熟悉对于BeautifulSoup,我没有想到你的分析,我甚至没有想过在这种情况下尝试。你给我留下了比我开始时更好的印象。
... xml.parsers.expat.ExpatError: undefined entity ...