Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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
Php 使用DOMDocument解析HTML时使用Rogue元素_Php_Html_Parsing_Dom - Fatal编程技术网

Php 使用DOMDocument解析HTML时使用Rogue元素

Php 使用DOMDocument解析HTML时使用Rogue元素,php,html,parsing,dom,Php,Html,Parsing,Dom,假设我的$html如下所示: <!DOCTYPE html> <html> <head> <script type="text/javascript">document.createElement("video");document.createElement("audio");document.createElement("track");</script> <script type="text/javascri

假设我的$html如下所示:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">document.createElement("video");document.createElement("audio");document.createElement("track");</script>
    <script type="text/javascript" src="/gui/default/tinymcecontent.js"></script>
    <script type="text/javascript" src="/includes/js/video-js/video.min.js"></script>
    <link rel="stylesheet" href="/includes/js/video-js/video-js.css" />
    <script type="text/javascript">document.createElement("video");document.createElement("audio");document.createElement("track");</script>
    <script type"text/javascript" src="/includes/js/video-js/video.js"></script/>
    <link rel="stylesheet" href="/includes/js/video-js/video-js.css" />
</head>
<body style="font-family: arial;font-size: 12px;">
    <p> </p>
    <table width="100%">        
    </table>
</body>
</html>
结果

$dom->saveHTML($full_dom)

\n\/\n\u00a0\n\n
元素

<p>\/&gt;<link rel=\"stylesheet\" href=\"\/includes\/js\/video-js\/video-js.css\"><\/p>
\/
从哪里来?
其他一切都很好,只是这个元素从head标签转移到body标签的元素。

它来自以下行:

<script type"text/javascript" src="/includes/js/video-js/video.js"></script/>

天哪,我明白了。。我可以选择什么来忽略html部分中的错误,这些错误我无法控制,也不想与之有任何关系?我试着只在body标签上工作,而忽略其余部分。@SubjectX我想你做不到。但是,也许您可以尝试在解析
元素之前替换字符串。祝你好运。@SubjectX-请注意,一个符合标准的HTML5解析器将更好地处理你的格式错误的HTML-也就是说,与浏览器的处理方式相同。在“感谢您的建议”的答案中,有一些关于此类php库的建议。我确实在处理一些遗留代码,所以现在实现附加库并不是那么理想。。
<p>\/&gt;<link rel=\"stylesheet\" href=\"\/includes\/js\/video-js\/video-js.css\"><\/p>
<script type"text/javascript" src="/includes/js/video-js/video.js"></script/>
<script type="text/javascript" src="/includes/js/video-js/video.js"></script>
foreach (libxml_get_errors() as $error) {
    print_r($error);
}