Php HTML DOM解析器
我正在使用HTMLDOM解析器 我有这样的html代码,想用blue类解析第一个UL中的所有LIPhp HTML DOM解析器,php,html,parsing,dom,Php,Html,Parsing,Dom,我正在使用HTMLDOM解析器 我有这样的html代码,想用blue类解析第一个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"&g
<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>
此代码返回
<li>1</li><li>2</li><li>3</li><li>4</li><li>5</li>
1 2 3 4 5
但是我想要
<li>1</li><li>2</li><li>3</li>
1 2 3
如果有人知道如何解决我的问题,我会很高兴的你能做到
<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>
您只需要第一个
ul
所有li
元素。您可以按如下方式进行操作:-
$res = "";
foreach($html->find('.blue->li',0) as $element)
{
$res = $res . $element;
}
echo $res;
输出:-1 2 3
foreach($html->find('ul', 0) as $ul)
{
foreach($ul->find('li') as $li)
{
$ret = $li->find('.blue');
}
}
echo $ret
这将为您提供蓝色类的第一个ul的所有li。不需要两个
foreach()
检查其他答案,您将得到一个更简单的解决方案在您对答案进行编辑后是有意义的。@hivokas很高兴帮助您再次检查,现在它返回1LIARRAYARRAY- 1
- 2
- 3
- 阵列73
$res = "";
foreach($html->find('.blue->li',0) as $element)
{
$res = $res . $element;
}
echo $res;
foreach($html->find('ul', 0) as $ul)
{
foreach($ul->find('li') as $li)
{
$ret = $li->find('.blue');
}
}
echo $ret