$p = new DOMDocument();
echo $data;
$static = $p->loadHTML($data);
$static = $static->getElementByTagName("html")->item(0);
$static = $static->getElementByTagName("body")->item(0);
$static = $static->getElementByTagName("table")->item(0);
$static = $static->getElementByTagName("tr")->item(0);
$static = $static->getElementByTagName("td")->item(0);
$static = $static->getElementByTagName("table")->item(0);
$static = $static->getElementByTagName("tr")->item(5);
$static = $static->getElementByTagName("td")->item(1);
$static = $static->getElementByTagName("div")->item(0);
$static = $static->getElementByTagName("table")->item(0);
$static = $static->getElementByTagName("tr")->item(0);
$static = $static->getElementByTagName("td")->item(0);
$static = $static->etElementByTagName("center")->item(0);
echo $static;
这是我上面的代码,我不确定我是否正确地做了它但似乎是正确的(我试图基本上通过结构找到我需要的确切部分)。但是我一直收到这个错误:
致命错误:在第18行的blah中对非对象调用成员函数getElementByTagName()
(第18行是第一个“getElementByTagName”)
如果与它有任何关系,我也会收到这些错误:
警告:DOMDocument :: loadHTML() [domdocument.loadhtml]:开场和 结束标记不匹配:td和居中 实体,行:83英寸 第17行
警告:DOMDocument :: loadHTML() [domdocument.loadhtml]:开场和 结束标记不匹配:td和居中 实体,行:83英寸 第17行
警告:DOMDocument :: loadHTML() [domdocument.loadhtml]:开场和 结束标记不匹配:td和居中 实体,行:87英寸 第17行
警告:DOMDocument :: loadHTML() [domdocument.loadhtml]:意外结束 tag:div in Entity,line:91 in 第17行
但是,有人可以帮忙吗?
答案 0 :(得分:5)
首先,修复HTML,使其符合这些错误。然后做DOM处理。
您也可以使用DOMXpath并执行
->evaluate('/body/table/tr/td/table/tr/td/div/table/tr/td/center')
或者你可以->evaluate('//center')
抓住所有center
元素。
您的HTML有效。您还可以为center
元素指定一个id。理想情况下,你应该从不使用中心元素。
答案 1 :(得分:3)
您错误地将函数名称输入为getElementByTagName
。正确的函数名称为getElementsByTagName
。当我使用此更正重复您的代码时,它可以正常工作。
答案 2 :(得分:3)
记录:
有时我们无法修复格式错误的文件
我们可以使用@
(错误控制)运算符阻止这些警告。
$static = @$p->loadHTML($data);