【问题标题】:Php parsing with simple_html_dom, search problemphp用simple_html_dom解析,搜索问题
【发布时间】:2009-10-27 00:35:06
【问题描述】:

您好,我正在使用 simple_html_dom 来查找 html 文档中属于“new”类的每个链接。通常我会使用:

  $html->find('a[class=new]'); 

这将获得诸如例如的​​链接

<a class="new" ... blah blah ... />

不过这次的问题是 html 文档包含的类链接如

<a class="today new".../>
<a class="alksdjld new kfljslfd".../>

基本上还有很多其他的链接,里面都带有 new 这个词。在线手册说 [class^=new] 将部分解决这个问题,因为它会排序以 new 开头并且确实有效的类。但这仍然留下诸如“new blah blah etc”之类的课程

希望这是有道理的。有没有人遇到过/解决过这个问题?

【问题讨论】:

    标签: php parsing


    【解决方案1】:

    一旦您使用 [class^=new] 找到整个类列表,您是否可以遍历它们并过滤出只有 new 作为唯一类的那些?

    【讨论】:

      【解决方案2】:

      来自文档:

      // Find all <li> in <ul>
      foreach($html->find('ul') as $ul)
      {
             foreach($ul->find('li') as $li)
             {
                   // do something...
             }
      }
      

      所以您应该能够遍历您的 a 记录并查看 $a->class 以查看它是否 == 'new' 如果不是,它将不仅仅是新的,您可以跳过它.. .

      【讨论】:

      • 我不认为你说的是​​可能的。 $html->find('a[class=new]'); foreach ($html as $value){ // } 那么我该如何检查 foreach 语句中的 class== 'new' 呢?我不认为它是这样工作的?
      • 对不起,我的意思是 $class= $html->find('a[class=new]'); foreach ($class as $value){ // } ..........有人吗?
      • 我认为它更像是 if($value->class== "new")。
      猜你喜欢
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2018-01-04
      • 1970-01-01
      • 2020-04-08
      • 2018-07-20
      • 1970-01-01
      相关资源
      最近更新 更多