我正在尝试从我使用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>
标记获取内容。所以有人可以帮我解决这个问题。
答案 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 );