6

这是我的一些代码......

$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 上读取多个不同的东西到不同的变量吗?如果这有意义的话。

4

1 回答 1

4

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

对于 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");
?>

只要您传递 Well-Made XML 或 XHTML 内容,就应该在没有文件的情况下工作,改变

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

给你的

$dom->loadHTML($html);

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

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

然后你可以再次回显它或其他东西。

于 2012-11-06T03:08:50.500 回答