选择ul中的元素,而不是ul本身


pick the elements INSIDE the ul NOT the ul itself

这是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;