getElementsByTagName 标题将随 DOMNodeList 对象返回

发布于 2024-12-10 07:46:50 字数 632 浏览 0 评论 0原文

我们的脚本使用 dom 解析文档中的所有 a 标签,然后循环遍历子节点并提取信息,该信息工作正常,这是代码的启动方式

@$dom->loadHTML($str);
$documentLinks = $dom->getElementsByTagName("a");

循环的一部分

$this->count]['href']     = strip_tags($documentLink->getAttribute('href'));

我现在需要从每个页面获取标题标签,所以我想我可以这样做

$documentTitle = $dom->getElementsByTagName("title");
$documentLinks = $dom->getElementsByTagName("a");

然后将其添加到循环/数组中以获取文档标题,但它返回“[title] => DOMNodeList Object()”如何在正在经历标签/的循环中包含标题标签孩子节点?

$this->count]['title']  = $documentTitle;

Our script uses dom to parse all the a tags from a document then loops through child nodes and extracts information which works fine here's how the code starts

@$dom->loadHTML($str);
$documentLinks = $dom->getElementsByTagName("a");

Part of the loop

$this->count]['href']     = strip_tags($documentLink->getAttribute('href'));

I now need to get the title tag from each page were lopping through so I thoguht I could do

$documentTitle = $dom->getElementsByTagName("title");
$documentLinks = $dom->getElementsByTagName("a");

Then add this to the loop/array to get the document title but it comes back with "[title] => DOMNodeList Object()" How can I include the title tag in the loop which is going through a tags/child nodes?

$this->count]['title']  = $documentTitle;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咽泪装欢 2024-12-17 07:46:50

getElementsByTagName 返回 DOMNodeList 对象。您需要列表中第一个(应该只是一个页面标题)项目的文本内容。

试试这个:

$documentTitle = $dom->getElementsByTagName('title')->item(0)->textContent;

getElementsByTagName returns a DOMNodeList object. You want the text content of the first (should only be one page title) item in the list.

Try this:

$documentTitle = $dom->getElementsByTagName('title')->item(0)->textContent;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文