这是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>
您只是忘记使用children()
方法。考虑这个例子:
$ul = $html->find('ul[id="members-list"]', 0)->children();
foreach($ul as $li) {
echo $li;
}
在手册中说明:
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
magic attribute
$ul = $html->find('ul[id="members-list"]', 0);
echo $ul->innertext;
您可以使用:
$('#members-list li')
遍历它们:
$('#members-list li').each(function(){
console.log(this);//object of current li
});
看一下这个这也会打印inside 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;
}
}
?>
您必须为选定的ul
元素使用.html()
:
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;