如何获取<;李>;使用php标记


How to get the contents between <li> tag using php?

我正试图从我使用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>

现在我试图分别获得具有两个<ul>标签的<li>标签的内容。有人能帮我解决这个问题吗。

使用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 );