如何使用php获取<li>标签之间的内容?</li>

时间:2015-02-19 08:48:48

标签: php html parsing

我正在尝试从我使用php的html代码中获取<li>标记之间的内容。

我的代码是

 <div class="container">
      <ul class="inside content">
         <li>number 1 </li>
         <li>number 2 </li>
         <li>number 3 </li>
      </ul>

      <ul class="outside content">
         <li class="different class">number 1 </li>
         <li class="different class">number 2 </li>
         <li class="different class">number 3 </li>
      </ul>
 </div>

现在,我尝试分别使用<li>标记的<ul>标记获取内容。所以有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

使用DOMDocument - 未经测试但想法是合理的

        $strHTML=' <div class="container">
          <ul class="inside content">
             <li>number 1 </li>
             <li>number 2 </li>
             <li>number 3 </li>
          </ul>

          <ul class="outside content">
             <li class="different class">number 1 </li>
             <li class="different class">number 2 </li>
             <li class="different class">number 3 </li>
          </ul>
     </div>';

    $aul1=array();
    $aul2=array();

    $dom=new DOMDocument;
    $dom->loadHTML( $strHTML );/* where $strHTML is the html you wish to parse*/
    $col=$dom->getELementsByTagName('li');

    foreach( $col as $node ) {
        if( $node && $node->parentNode->hasAttribute('class') && $node->parentNode->getAttribute('class')=='inside content' ) $aul1[]=$node->nodeValue;
        if( $node && $node->parentNode->hasAttribute('class') && $node->parentNode->getAttribute('class')=='outside content' ) $aul2[]=$node->nodeValue;
    }

    print_r( $aul1 );
    print_r( $aul2 );