这是php代码:
include_once('simple_html_dom.php');
$html = file_get_html('URL');
$elem = $html->find('ul[id=members-list]', 0);
echo $elem;
我希望能够选择UL内部的元素本身,而不是ul本身。 html如下:
<ul id="members-list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
所以当我echo $elem
时,它会返回包含的ul。我想把它拿回来:
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
答案 0 :(得分:1)
您可以使用:
$('#members-list li')
迭代它们:
$('#members-list li').each(function(){
console.log(this);//object of current li
});
答案 1 :(得分:1)
您忘了使用children()
方法。考虑这个例子:
$ul = $html->find('ul[id="members-list"]', 0)->children();
foreach($ul as $li) {
echo $li;
}
在manual:
中说明 <强> How to traverse the DOM tree? -> Traverse the DOM Tree
强>
<强> mixed$e->children ( [int $index] ) Returns the Nth child object if index is set, otherwise return an array of children.
强>
或者更简单的方法: ->innertext
魔法属性
$ul = $html->find('ul[id="members-list"]', 0);
echo $ul->innertext;
答案 2 :(得分:1)
看看这个,这也会打印 li 标签内的值
<?php
$html = file_get_contents('2.html');
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('ul') as $node) {
foreach($node->childNodes as $childNode){
echo $childNode->nodeValue;
}
}
?>
答案 3 :(得分:0)
您必须对所选的.html()
元素使用ul
:
include_once('simple_html_dom.php');
$html = file_get_html('URL');
$elem = $html->find('ul[id=members-list]', 0)->html();
^-- to get all child elements with tag
echo $elem;