Mic*_*udt 5 php getelementbyid domdocument nodevalue
这是我的一些代码...
$dom = new DomDocument;
$html = $newIDs[0];
$dom->validateOnParse = true;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = true;
$tryID = $dom->getElementById('ID');
echo $tryID;
Run Code Online (Sandbox Code Playgroud)
我试图从一个网站上获取多个特定的ID,这仅显示一个,而且我在各处(包括在此处)都已经看到了这种方法,但是当我尝试打印出任何内容时,却没有任何显示。我尝试测试以查看它是否正在读取某些内容
if(!$tryID)
{
("Element not found");
}
Run Code Online (Sandbox Code Playgroud)
但它也从未打印出来。最后,我用过
echo $tryID->nodeValue;
Run Code Online (Sandbox Code Playgroud)
还是一无所有...有人知道我在做什么错吗?
另外,如果我确实可以正常工作,我可以在同一$ dom上以多种不同的方式读取不同的变量吗?如果这是有道理的。
好的,所以你的解决方案。
对于 DIV:
<div id="divID" name="notWorking">This is not working!</div>
Run Code Online (Sandbox Code Playgroud)
这会做:
<?php
$dom = new DOMDocument("1.0", "utf-8");
$dom->loadHTMLFile('YourFile.html');
$div = $dom->getElementById('divID');
echo $div->textContent;
$div->setAttribute("name", "yesItWorks");
?>
Run Code Online (Sandbox Code Playgroud)
只要您传递精心制作的 XML 或 XHTML 内容,就应该在没有文件的情况下工作,改变
$dom->loadHTMLFile('YourFile.html');
Run Code Online (Sandbox Code Playgroud)
给你的
$dom->loadHTML($html);
Run Code Online (Sandbox Code Playgroud)
哦,是的,当然,要更改内容(为了完整性):
$div->removeChild($div->firstChild);
$newText = new DOMText('Yes this works!');
$div->appendChild($newText);
Run Code Online (Sandbox Code Playgroud)
然后你可以再次回显它或者其他什么。