当前位置: 首页 > 面试题库 >

使用DOMdocument()方法按ClassName获取元素

缑兴贤
2023-03-14
问题内容

这是我想要达到的目的:检索页面上的所有产品并将它们放入数组中。这是我正在使用的代码:

$page2 = curl_exec($ch);
$doc = new DOMDocument();
@$doc->loadHTML($page2);
$nodes = $doc->getElementsByTagName('title');
$noders = $doc->getElementsByClassName('productImage');
$title = $nodes->item(0)->nodeValue;
$product = $noders->item(0)->imageObject.src;

$title but不适用于该产品。有关信息,在HTML代码中,img标签如下所示:

<img alt="" class="productImage" data-altimages="" src="xxxx">

我一直在看这个PHPDOMDocument如何获取元素?,但我仍然不明白如何使其工作。

PS:我收到此错误:

调用未定义的方法 DOMDocument::getElementsByclassName()


问题答案:

我终于使用了以下解决方案:

    $classname="blockProduct";
    $finder = new DomXPath($doc);
    $spaner = $finder->query("//*[contains(@class, '$classname')]");


 类似资料:
  • 本文向大家介绍js通过classname来获取元素的方法,包括了js通过classname来获取元素的方法的使用技巧和注意事项,需要的朋友参考一下 原生JS有3种方式来获取元素: 实现原理很简单,通过getElementsByTagName获取到一个元素集合,如果传入了tagname这个参数就根据传入的 tagname来获取,否则获取所有的元素,然后再一个一个元素来匹配classname是否相等.

  • 问题内容: 是否可以从加载中删除元素而不创建新元素?例如这样的事情: 问题答案: 通过告诉父节点删除子节点来删除该节点: 请参阅文档 和 文档 。

  • 是否可以从加载的中删除元素而不创建新元素?例如,类似这样的事情:

  • 问题内容: 你怎么做相当于 document.querySelectorAll('[data-foo]') 其中querySelectorAll是不可用? 我需要至少在IE7中有效的本机解决方案。我不在乎IE6。 问题答案: 您可以编写一个运行getElementsByTagName(’*’)的函数,并仅返回具有“ data-foo”属性的那些元素: 然后,

  • 本文向大家介绍使用jquery/js获取iframe父子级、同级获取元素的方法,包括了使用jquery/js获取iframe父子级、同级获取元素的方法的使用技巧和注意事项,需要的朋友参考一下 在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素 1、 格式:window.fram

  • 如何使用JSoup(http://JSoup.org/)按标记获取元素? 但它输出: