【问题标题】:HTML DOM ParserHTML DOM 解析器
【发布时间】:2017-03-08 15:49:14
【问题描述】:

我正在使用 html dom 解析器

我有这样的 html 代码,并希望从第一个 UL 中解析所有 LI,并使用蓝色类

<html> 
<div id="rhy">
<h2 class="text">Text1</h2>
<ul class="blue">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<h2 class="text">Text2</h2>
<ul class="blue">
<li>4</li>
<li class="z">5</li>
<li>6</li>
</ul>
</div>
</html>

我有 php 代码

$res = "";
foreach($html->find('#rhy -> .blue -> li[!class]') as $element) 
{
    $res = $res . $element;
}
echo $res;

这段代码返回

<li>1</li><li>2</li><li>3</li><li>4</li><li>5</li>

但我想拥有

<li>1</li><li>2</li><li>3</li>

如果有人知道如何解决我的问题,我会很高兴

【问题讨论】:

    标签: php html parsing dom


    【解决方案1】:

    您只需要第一个 ul 所有 li 元素。你可以这样做:-

    $res = "";
    foreach($html->find('.blue->li',0) as $element) 
    {
        $res = $res . $element;
    }
    echo $res;
    

    输出:- &lt;li&gt;1&lt;/li&gt;&lt;li&gt;2&lt;/li&gt;&lt;li&gt;3&lt;/li&gt;

    【讨论】:

    • @hivokas 很高兴为您提供帮助
    • 再次检查,现在返回 1liArrayArrayArray
      • 1
      • 2
      • 3
      Array73
    【解决方案2】:

    你可以这样做

     <html> 
    <div id="rhy">
    <h2 class="text">Text1</h2>
    <ul id ="yourid" class="blue">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    </ul>
    <h2 class="text">Text2</h2>
    <ul class="blue">
    <li>4</li>
    <li class="z">5</li>
    <li>6</li>
    </ul>
    </div>
    </html>
    

    还有你的 php

    $res = "";
    foreach($html->find('#rhy -> #yourid -> li[!class]') as $element) 
    {
        $res = $res . $element;
    }
    echo $res;
    

    【讨论】:

      【解决方案3】:
      foreach($html->find('ul', 0) as $ul) 
      {
             foreach($ul->find('li') as $li) 
             {
                   $ret = $li->find('.blue');
             }
      }
      echo $ret
      

      这应该为您提供第一个 ul 的所有 li 以及蓝色类。

      【讨论】:

      • 不需要两个foreach()检查其他答案,你会得到一个更简单的解决方案
      • 是的,在您对答案进行编辑后,这是有道理的。
      猜你喜欢
      • 2015-08-25
      • 1970-01-01
      • 2010-10-25
      • 2011-05-18
      • 2012-08-24
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多