【问题标题】:How get list subItens nodes separateds using PHP DOM如何使用 PHP DOM 获取列表 subItens 节点分隔
【发布时间】:2016-08-25 13:01:18
【问题描述】:

我看到了这个提示 PHP DOM get items from first ul element

但在这种情况下:

<li>First item
   <ul>
     <li>
       First SubItem
     </li>
     <li>
       Second SubItem
     </li>
   </ul>
</li>

PHP 代码:

$DOM = new DOMDocument;
        libxml_use_internal_errors(true);
        $DOM->loadHTML( $output);
        $items = $DOM->getElementsByTagName('ul');

            echo '<ul>';
                foreach ($items->item(3)->getElementsByTagName('li')        as $li) {
                    var_dump($li);die();
                    echo '<li>'.$li->nodeValue;
                        $ul = $li->getElementsByTagName('ul');
                            echo '<ul>';
                    echo '--->'.$ul->length.'<br>';
                        for($u=0;$u<$ul->length;$u++){
                            foreach ($ul->item($u)->getElementsByTagName('li') as $lii) {
                                echo '<li>'.$lii->nodeValue.'</li>';
                            }
                        }
                        echo '</ul>';
                    echo '</li>';
                }
            echo '</ul>';

问题是: 我进入 //$li->nodeValue;// "First itemFirst SubItemSecond SubItem" 作为 Fist 节点; 我需要将这些项目分开(子项目)

【问题讨论】:

  • 不明白你的问题
  • 问题是:我进入 //$li->nodeValue;// "First itemFirst SubItemSecond SubItem" 作为 Fist 节点;我需要将这些项目分开(子项目)
  • 可能想看看DOMXPath它会大大简化事情:php.net/manual/en/class.domxpath.php
  • 我正在从远程网站加载 HTML。

标签: php list dom


【解决方案1】:

我假设您只想从那些 &lt;li&gt; 标记中检索文本值。

您可以使用DOMXPath 大大简化查询,因为-&gt;query('//li') 将在您的代码sn-p 中获取所有 &lt;li&gt; 标记。

$DOM = new DOMDocument();
$DOM->loadHTML($output);

$xPath = new DOMXPath($DOM);
if($xpResponse = $xPath->query('//li/text()')) {
    echo "<ul>\n";

    foreach($xpResponse as $xNode) {
        echo "<li>" . trim($xNode->nodeValue) . "</li>\n";
    }

    echo "</ul>\n";
}

这将简单地输出(作为 HTML):

  • 第一项
  • 第一个子项
  • 第二个子项

【讨论】:

  • 非常棒!谢谢!
猜你喜欢
  • 2012-03-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多