$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;
Thats my code above, im not sure if I am doing it correctly but it seems like its right (Im trying to basically go through the structure to find the exact part I need). However I keep getting this error:
Fatal error: Call to a member function getElementByTagName() on a non-object in blah on line 18
(Line 18 being the first "getElementByTagName")
I also get these errors if its anything to do with it:
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Opening and ending tag mismatch: td and center in Entity, line: 83 in on line 17
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Opening and ending tag mismatch: td and center in Entity, line: 83 in on line 17
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Opening and ending tag mismatch: td and center in Entity, line: 87 in on line 17
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : div in Entity, line: 91开发者_如何学C in on line 17
but yeah, can anyone help please?
First, fix your HTML so it's valid per those errors. Then do DOM processing.
You can also use DOMXpath and do
->evaluate('/body/table/tr/td/table/tr/td/div/table/tr/td/center')
Or you can just do ->evaluate('//center')
and grab all center
elements.
after you get your HTML valid. You can also give that center
element an id. Ideally, you should never use the center element though.
You have mistyped the function name as getElementByTagName
. The correct function name is getElementsByTagName
. When I repeated your code with this correction it worked properly.
For the record:
Sometimes we can't fix malformed documents.
We can block those warnings with the @
(error control) operator.
$static = @$p->loadHTML($data);
精彩评论