Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
`-:55:HTML解析器错误:HtmlParserEntityRef:应为'';`:用xmllint清理HTML文件?_Xml_Xml Parsing_Tidy_Xmllint_Htmltidy - Fatal编程技术网

`-:55:HTML解析器错误:HtmlParserEntityRef:应为'';`:用xmllint清理HTML文件?

`-:55:HTML解析器错误:HtmlParserEntityRef:应为'';`:用xmllint清理HTML文件?,xml,xml-parsing,tidy,xmllint,htmltidy,Xml,Xml Parsing,Tidy,Xmllint,Htmltidy,我想从上面的URL清理文件。但是xmllint给出了以下错误。有人知道如何解决这个问题吗?谢谢 $ xmllint -html -xmlout file.html -:55: HTML parser error : htmlParseEntityRef: expecting ';' ges/dh-img.jpg"><A href="../common_item.aspx?parent_id=20070610225413001&menu_id

我想从上面的URL清理文件。但是xmllint给出了以下错误。有人知道如何解决这个问题吗?谢谢

$ xmllint -html -xmlout file.html
-:55: HTML parser error : htmlParseEntityRef: expecting ';'
ges/dh-img.jpg"><A href="../common_item.aspx?parent_id=20070610225413001&menu_id
                                                                               ^
-:55: HTML parser error : htmlParseEntityRef: expecting ';'
on_item.aspx?parent_id=20070610225413001&menu_id=20070610225740001&is_three_menu
                                                                               ^
-:55: HTML parser error : htmlParseEntityRef: expecting ';'
ges/dh-img.jpg"><A href="../common_item.aspx?parent_id=20070610225449001&menu_id
                                                                               ^
-:55: HTML parser error : htmlParseEntityRef: expecting ';'
on_item.aspx?parent_id=20070610225449001&menu_id=20171222045531778&is_three_menu
                                                                               ^
-:55: HTML parser error : htmlParseEntityRef: expecting ';'
ges/dh-img.jpg"><A href="../common_item.aspx?parent_id=20070610225428001&menu_id
                                                                               ^
-:55: HTML parser error : htmlParseEntityRef: expecting ';'
...
$xmllint-html-xmlout file.html
-:55:HTML解析器错误:HtmlParserEntityRef:应为“;”

ges/dh img.jpg“>这似乎是带有查询参数的URL中使用的符号和字符的问题,xmllint希望将其解释为实体引用,然后对此进行投诉,因为XML中的实体引用必须以分号字符终止(与SGML不同,在SGML中,仅当后续字符是名称字符时才需要分号)。您可以尝试xmllint的“-noent”选项,但我不认为可以告诉xmllint忽略实体引用,并建议使用另一种工具将HTML转换为XML,如“sgmlproc”“如my.中所述,其中详细讨论了如何处理符号和字符,包括使用HTML DTD,其中声明了href和其他URL类型的属性,从而无法识别任何实体引用


很抱歉回答得太长和自我提升,但我知道没有更好的解决方案可以解决您的问题。我原本打算将此作为一个注释,但空间不足。

您能告诉我运行它的确切命令吗?我尝试了
sgmlproc--o 1.html view\u abstract.aspx\?file\u no\=gc19010159\&flag\=1
。但是它挂在那里。啊,您的文件有自己的功能own DOCTYPE(sgmlproc不挂起,但无法下载引用的实体)。无论如何,它不是有效的XHTML。我将DOCTYPE替换为
(其中
about:legacy compat
指的是内置在
sgmlproc
中的HTML5.2声明。现在
sgmlproc
抱怨第76行中的
B
结束元素标记。移除没有匹配开始标记的杂散
。还移除文件中的所有
nowrap
标记,并移除伪
scr。)ipt
元素。然后
sgmlproc
仍将输出错误,但不会产生致命错误,并创建1.xml。另外一件事:将文件重命名为具有.html后缀,否则sgmlproc将无法识别预定义的html字符实体。此外,还应使用
-v output\u format=xml
(在
--
之前)创建XML(另请参阅链接教程中有关创建正确的XHTML的详细讨论)。我不想对原始文件进行任何手动更改,因为我将有任何有错误的文件。您能告诉我修复错误的确切命令吗?抱歉,该文件太坏,无法自动修复(当它甚至没有一个根元素、包含不平衡元素等时,就声称是XHTML)