PHP DOM 从第一个 ul 元素获取项目

2023-12-04

我有 html 文件,如下所示:

<ul>
 <li>item 1</li>
 <li>item 2</li>
 <li>item 3</li>
</ul>
<ul>
 <li>smth 1 2 3..</li>
 <li>another</li>
<ul>
<ul>
 <li>smth 1 2 3..</li>
 <li>another</li>
<ul>

我试图仅从第一个 ul 列表中获取元素。我正在使用这段代码,但它返回错误:

<?php
    $dom = new DOMDocument();
            $dom->loadHTML($data);
            $postalCodesList = $dom->getElementsByTagName('ul');
            foreach ($postalCodesList->item(0) as $postalCodesList) {
                 echo $postalCodesList->nodeValue.'<br />';

            }
?>

将 DomNode 传递给 foreach 将不允许您迭代其子节点,您可以轻松获取列表lis 并迭代它们。

<?php
    $dom = new DOMDocument();
    $dom->loadHTML($data);
    $postalCodesList = $dom->getElementsByTagName('ul');
    foreach ($postalCodesList->item(0)->getElementsByTagName('li') as $postalCodesList) {
        echo $postalCodesList->nodeValue.'<br />';                    
    }
?>

DEMO

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP DOM 从第一个 ul 元素获取项目 的相关文章

随机推荐

  • 为什么在 C 语言中可以在一个字节中分配一个大数字?

    int ptr malloc sizeof char ptr 100000 printf d n ptr 100000 难道不应该只为一个分配足够的内存吗 char 即 1 个字节 那么最大的数不应该是255吗 怎么还打印100000 Up
  • 如何拆分埋藏在历史中的 Git 提交?

    我搞砸了我的历史并想对其进行一些更改 问题是 我有一个包含两个不相关更改的提交 并且该提交被我的本地 非推送 历史记录中的一些其他更改包围 我想在推出之前拆分此提交 但我看到的大多数指南都与拆分您最近的提交或未提交的本地更改有关 对埋藏在历
  • 当 HEAD 请求失败时,Gradle 无法下载依赖项

    我已经在 Gradle 构建脚本中设置了依赖项 该脚本托管在 Bitbucket 上 Gradle 下载失败 并出现错误消息 不能头 https bitbucket org zip 从服务器收到状态代码 403 禁止 我查了一下 似乎是因为
  • 警告:不推荐从字符串文字到“char *”的转换

    在下面的 C 代码中 char type switch mix mode case GO HISTORY VIDEO MIX VISUAL GAS type visual gas break case GO HISTORY VIDEO MI
  • 不同分辨率支持android

    编辑的问题 手机分辨率 我想设计不同的屏幕 dpi 如以下分辨率 320x480 480 800 540x960 720x1280 三星S3 1080x1920 S4 Nexus5 Nexus 5x Moto G4 2560 x 1440
  • 在这种情况下,instanceof 方法的替代方法

    你好 我想知道像这样的东西有什么更优雅的替代品 class Base class A extends Base class B extends Base iterator of colection containing mixed As a
  • R:数字精度,如何防止四舍五入?

    在 R 中 我有以下数字向量 numbers lt c 0 0193738397702257 0 0206218006695066 0 021931558829559 0 023301378178208 0 024728095594751
  • Azure VNET 子网委派

    有人可以帮助解释 Azure 中的子网委托吗 我读过以下文章 但它并没有真正解释任何内容 https learn microsoft com en us azure virtual network subnet delegation ove
  • 将命令按钮添加到 Windows 登录屏幕 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想为 Windows 用户实现自我重置密码功能 当登录屏幕提示时 应向域用户显示忘记密码按钮 该按钮将引导用户进入密码重置向导 所以问题是如何向标准 Windows 登录屏幕添
  • 如果单击子菜单项,请避免关闭菜单

    这是一个多级菜单 当我单击 关于 链接时 它会打开包含 3 个链接 Johnny Julie 和 Jamie 的子菜单 当我再次单击 关于 时 它会关闭菜单 单击子菜单也会关闭菜单 这是我想避免的 如果我单击子菜单 约翰尼 朱莉和杰米 如何
  • Visual Studio 2013 不断崩溃并出现错误 denev.exe [重复]

    这个问题已经存在了 所以我有一台运行 Windows 10 和 Visual Studio Ultimate 2013 的机器 但是每次我启动该程序 它都会在 1 分钟内崩溃 甚至没有移动鼠标 当它崩溃时 它会给出以下错误 devenv e
  • 从 JSON 模式生成 C# 类 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在创建一个 C WCF Web 服务 它以 JSON 格式返回大量数据 客户端是一个iPad应用程序 目前正在由另一个团队开发 所以我正在研究规
  • 罐子不匹配!修复你的依赖关系

    重现步骤 创建一个android项目 MyApp 导入 ActionBarSherlock ABS Directional ViewPager DVP 或任何其他使用 Android 支持库的开源库 将库添加到项目 MyApp 中 控制台日
  • 有什么方法可以获取Java中字符串的大小(以字节为单位)?

    我需要文件中每行的大小 以字节为单位 这样我就可以获得读取的文件的百分比 我已经得到了文件的大小file length 但是如何获得每条线的大小 final String hello str Hello World hello str ge
  • uint 之间的差异可以为负数

    我有一个关于 C C 中无符号整数的问题 它们以及对它们的运算结果应始终为正或等于零 但与 uint16 t 的差异看起来并非如此 uint 在 C 头文件 cstdint 中定义 下一个程序采用 错误 分支 uint16 t beg 7
  • Django 如何知道渲染表单字段的顺序?

    如果我有一个 Django 表单 例如 class ContactForm forms Form subject forms CharField max length 100 message forms CharField sender f
  • Android Studio错误:数据错误循环冗余检查

    我正在开发一个项目 这需要我重新安装最新版本的 Android Studio 安装后 当我打开项目时 我收到此错误 我已经尝试过可用的单一答案 但它不起作用 我正在使用最新版本的 Android Studio 3 1 1 错误 数据错误 循
  • 未找到 Django related_name

    我有这个模型 class Person models Model something employers models ManyToManyField self blank True related name employees 当我做pe
  • Bootstrap 按钮问题:按钮杂乱无章,无法并排放置

    我正在从事一个房地产网站项目 我已经创建了 Photoshop 模板并将其上传到 Behance https www behance net csc103falld848 现在 我正在创建房地产商店模板的静态版本 我面临一个问题 我无法将按
  • PHP DOM 从第一个 ul 元素获取项目

    我有 html 文件 如下所示 ul li item 1 li li item 2 li li item 3 li ul ul li smth 1 2 3 li li another li ul ul li smth 1 2 3 li li