HTML DOM解析器
我使用的HTML DOM解析器HTML DOM解析器
我有这样的HTML代码,并且希望解析所有李时珍从第一UL带班蓝色
<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>
我会很高兴,如果有人知道如何解决我的问题
您只需要首先ul
全部li
元素。你可以像下面: -
$res = "";
foreach($html->find('.blue->li',0) as $element)
{
$res = $res . $element;
}
echo $res;
输出: - <li>1</li><li>2</li><li>3</li>
那么你可以做到这一点
<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;
这个html代码不是在我的网站上,所以我不能编辑这个 – hivokas
foreach($html->find('ul', 0) as $ul)
{
foreach($ul->find('li') as $li)
{
$ret = $li->find('.blue');
}
}
echo $ret
这应该给你的类蓝色第一UL的所有华里。
不需要的两个'的foreach()'检查其他的答案,你会得到一个更简单的解决方案 –
当你对你的答案进行编辑后,你的意思是有道理的。 –
谢谢你!它的作品 – hivokas
@hivokas很高兴帮助你 –
标记,谢谢! – hivokas