在PHP中,使用DomDocument getElementByID不起作用?我究竟做错了什么?

时间:2012-11-06 02:13:37

标签: php domdocument getelementbyid nodevalue

这是我的一些代码...

$dom = new DomDocument;
$html = $newIDs[0];
$dom->validateOnParse = true;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = true;
$tryID = $dom->getElementById('ID');
echo $tryID;

我正在尝试从网站上获取多个特定ID,这只是显示一个,我在各处看到过这种方法,包括在这里,但是当我尝试打印出来的东西时,没有任何东西显示出来。我尝试测试是否正在阅读

中的内容
if(!$tryID)
{
    ("Element not found");
}

但它永远不会打印出来。最后,我使用了

echo $tryID->nodeValue;

但仍然没有......任何人都知道我做错了什么?

另外,如果我确实这样做了,我可以在同一个$ dom上读到不同变量的不同变量吗?如果那是有道理的。

1 个答案:

答案 0 :(得分:3)

好的,所以你的解决方案。

对于DIV:

<div id="divID" name="notWorking">This is not working!</div>

这样做:

<?php

    $dom = new DOMDocument("1.0", "utf-8");
    $dom->loadHTMLFile('YourFile.html');
    $div = $dom->getElementById('divID');

    echo $div->textContent;

    $div->setAttribute("name", "yesItWorks");
?>

只要你传递一个制作良好的XML或XHTML内容,就可以在没有文件的情况下工作,改变

$dom->loadHTMLFile('YourFile.html');

到你的

$dom->loadHTML($html);

哦,是的,当然,要更改内容(完整性):

$div->removeChild($div->firstChild);
$newText = new DOMText('Yes this works!');
$div->appendChild($newText);

然后你可以再次回声它或者什么。