DOM:获取文档中的所有文本节点(PHP)

2023-11-27

我有以下(PHP)代码,它遍历整个 DOM 文档以获取所有文本节点。这是一个有点丑陋的解决方案,我确信一定有更好的方法......那么,有吗?

$skip = false;
$node = $document;
$nodes = array();
while ($node) {
    if ($node->nodeType == 3) {
        $nodes[] = $node;
    }
    if (!$skip && $node->firstChild) {
        $node = $node->firstChild;
    } elseif ($node->nextSibling) {
        $node = $node->nextSibling;
        $skip = false;
    } else {
        $node = $node->parentNode;
        $skip = true;
    }
}

Thanks.


您需要的 XPath 表达式是//text()。尝试使用它DOMXPath::query。例如:

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

DOM:获取文档中的所有文本节点(PHP) 的相关文章

  • 将字符串的第一个字母大写(前面带有特殊字符) - PHP

    我想将字符串大写 例如 hello 我希望我的函数返回 Hello 我尝试过使用 regex 和 preg match 但没有运气 这是我之前的问题 与此相关 preg match 正在匹配两个字符 而它应该只匹配一个字符 https st
  • 如何改进 PHP 分页算法?

    我正在研究 PHP 中的分页算法 我可以猜测它需要改进的空间 所以我想对如何改进它有一些想法 无论是从 UI UX 的角度清理代码本身 还是你能想到的任何其他东西 该算法应输出如下所示的分页 1 2 3 6 7 8 97 98 99 or
  • PHP DBlib PDO 问题

    我正在尝试通过 php 连接到 MSSQL 服务器 但我的 pdo 连接给我带来了困难和我不太理解的错误 我在下面粘贴的代码一周前运行得很好 突然间它就停止了 没有任何人进行任何更改 我仍然可以连接到服务器并直接从命令行运行查询 但我在 p
  • 如何将JS/CSS文件包含到Slim框架的模板中?

    我正在使用 Slim 框架开发一个简单的网络应用程序 我遇到了一个可能很简单的问题 我想将静态文件 CSS 和 Javascript 包含到我的模板中 我的项目文件夹结构如下 index php lt where all the routi
  • CodeIgniter/PHP - 从视图内调用视图

    基本上 对于我的网络应用程序 我正在尝试更好地组织它 目前 每次我想加载页面时 我都必须从控制器中执行此操作 如下所示 this gt load gt view subviews template headerview this gt lo
  • 如何通过VBA宏遍历Word文档中的文本

    我想通过宏来计算 Word 文档中的字符 我不知道如何获取 Visual Basic 宏中文本的两个参考并浏览它 我想计算文档中每个字符的数量 例如文档中 ABZBB A x 1 B x 3 Z x 1 Sub Macro1 Dim Box
  • PHP FTP_PUT 上传到目录

    我正在自学PHP 一本名为 PHP完全参考 PHP5 2 的书 我目前正在使用第 11 章 FTP 上传 删除 makedir 等 但遇到了一些本书未涵盖的问题 根据我的教科书 这是上传到服务器的简单代码 connect ftp conne
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • 在 PHP 中使用可变变量是不好的做法吗?

    例如 一个简单的MVC类型系统 api class method使用重写为 PHP 变量 htaccess nginx conf 然后做类似的事情
  • CakePHP Unfilled 单选按钮在提交时更改为不需要的值

    我有这个表单元素 form gt input ChecklistResponseGovernmentInfo driversLicenseIsOnline array type gt radio empty gt true options
  • FPM 与 apache2 无法工作(权限被拒绝)

    我正在尝试使用 apache fastcgi 和 fpm 设置一个 Debian Web 服务器 但我越来越恼火 一旦我停用 mod php 我就会收到以下错误 2014 年 5 月 22 日星期四 12 16 10 错误 客户端 xxx
  • 我应该在 Symfony 中哪里放置既不是控制器也不是模型的类?

    对于我的应用程序包 我需要一些既不是控制器也不是模型的类 例如 我想要一个scorecard具有诸如 技能 效率 美丽 等成员的类 此外 它可能具有诸如 meanScore 之类的成员方法 getters 这样的类在 Symfony 框架中
  • 如何将路径添加到 Apache PATH 变量?

    我在 apache2 的 custom conf 文件中设置了以下内容 SetEnv PATH PATH opt local lib mysql5 bin this is a test 但是它不起作用 当我打电话时 hey shell ex
  • Symfony2 - 在自定义验证器中调用 EmailValidator

    我正在创建一个自定义验证器约束来验证 联系人 类似于 John Doe 电子邮件受保护 gt 遵循Cookbook http symfony com doc current cookbook validation custom constr
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • 安全地评估简单的数学

    我想知道是否有一种安全的方法来评估数学 例如 2 2 10000 12000 10000 20 2 2 40 20 23 12 无需使用eval 因为输入可以来自任何用户 我需要实现的只是整数的加法和减法 是否有任何已经存在的代码片段 或者
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 访问 PHP 数组对象受保护的属性

    我正在尝试在 Symfony2 中上传多个文件 我正在尝试访问以下请求对象 但无法获取参数属性 如何将文件一一上传 我得到的错误 致命错误 无法访问第 66 行 var www File src Webmuch FileBundle Ent
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att

随机推荐

  • PHP / MySQL 票证响应 - 将电子邮件响应存储在数据库中?

    我正在构建一个基本的支持请求系统 客户可以登录并提出问题 管理员可以进入并回复 它将状态设置为 已回复 并向客户发送电子邮件 让他们知道有人已回复 我的问题是 我有一个 评论 部分 它是管理员和客户之间交互的日志 如果我通过电子邮件向客户发
  • HTML 电子邮件 - 是否允许使用 colspan?

    我想知道如果我在打算作为电子邮件使用的 HTML 表中使用 colspan 属性 电子邮件客户端 Outlook 等 是否会理解 colspan 的作用 因为我读到这可能会导致布局问题 所有主要电子邮件客户端均完全支持 Colspan 和
  • Docker-compose external_links 无法连接

    我有几个应用程序容器想要连接到 mongodb 容器 我尝试使用external links 但无法连接到mongodb I get MongoError 首先无法连接到服务器 mongodb 27017 连接 我是否必须将容器添加到同一网
  • 当数组数量和每个数组的长度未知时生成字符组合的所有排列

    我不确定如何以简洁的方式提出我的问题 所以我将从示例开始并从示例开始扩展 我正在使用 VBA 但我认为这个问题不是特定于语言的 只需要一个可以提供伪代码框架的聪明头脑 先谢谢您的帮助 例子 我有 3 个字符数组 如下所示 Arr 1 X Y
  • 如何设置2天的cronjob? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我们想使用 cronjob 来创建数据库备份 备份应该每两天进行一次 可以使用以下 cron 条目吗 0 0 2 backup command 如果这是错误的 请告诉我设置 2 天
  • EXECUTE 后的事务计数表明 BEGIN 和 COMMIT 语句的数量不匹配。先前计数 = 1,当前计数 = 0

    我有一个Insert存储过程将数据提供给Table1并得到Column1价值来自Table1并调用第二个存储过程来填充 Table2 但是当我将第二个存储过程调用为 Exec USPStoredProcName 我收到以下错误 EXECUT
  • 将标题对齐到同一基线,无论以下文本如何?

    有没有办法将不同大小的多个标题的第一行对齐到同一基线 另外 无论后面的文本如何 也应该对齐 See picture at http snapplr com snap z1mw please 编辑 重新上传 替代文本http img144 i
  • 无法使用“fill_parent”获得正确的布局

    我正在尝试在 Android 中创建这个简单的布局 A应该换行以适合其内容并且left center vertical align B应尽可能扩大 填满所有空白 C应该右对齐 换行以填充其内容并且也对齐center vertical 这是我
  • C++ string::求复杂度

    为什么要实现c string find 不使用KMP算法 并且不会运行在O N M 并运行在O N M 这在 C 0x 中得到纠正吗 如果当前查找的复杂度不是O N M 那是什么 那么gcc中实现了什么算法呢 是KMP吗 如果没有 为什么
  • 无法创建 org.jboss.arquillian.test.impl.EventTestRunnerAdaptor 类的新实例

    我有这个 pom xml 文件
  • 在 Heroku 上使用 docker、scrapysplash

    我有一个 scrapy 蜘蛛 它使用在 Docker localhost 8050 上运行的splash来在抓取之前渲染 javascript 我正在尝试在heroku上运行它 但不知道如何配置heroku以在运行我的网络之前启动docke
  • 独立 Apache Qpid (amqp) Junit 测试示例

    有谁有在 a 中使用 Apache Qpid 的示例吗 独立的朱单元测试 理想情况下 我希望能够动态创建一个队列 我可以在测试中放入 获取消息 因此 我不会在测试中测试 QPid 我将为此使用集成测试 但是对于测试处理消息的方法非常有用 并
  • 如何使用 sqlite 创建 ASP.NET Web 应用程序 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想使用sqlite在as
  • 整数矩阵的精确整数零空间?

    nullspace A 找到矩阵零空间的基A 返回的向量具有浮点坐标 如果矩阵A是一个整数矩阵 可以在整数坐标中找到基础 例如 在数学 NullSpace RandomInteger 10 10 3 4 始终返回整数向量 有没有办法在 Ju
  • 如何从 C 运行外部程序并解析其输出?

    我有一个实用程序 可以输出游戏所需的文件列表 如何在 C 程序中运行该实用程序并获取其输出 以便我可以在同一程序中对其进行操作 更新 关于缺乏信息的好呼吁 该实用程序会输出一系列字符串 这应该可以跨 Mac Windows Linux 移植
  • 适用于 .NET 的 HTML 到 PDF 转换器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在寻找一个适用于 NET 的免费 HTML 到 PDF 转换器它最好采用 HTML 页面并将其呈现为 PDF 文档 HTML 页面 打印时 将通常不止一页 我知道 ABCPDF
  • 两个日期之间的天数? [复制]

    这个问题在这里已经有答案了 查看两个日期之间过去了多少天的最短方法是什么 这就是我现在正在做的事情 math floor b a total seconds float 86400 假设您实际上有两个日期对象 您可以从另一个中减去一个并查询
  • 查询与 activerecord 的交集

    我真的很想在活动记录的帮助下执行以下查询 select from people p join cities c join services s where p city id c id and p id s person id and s
  • rql 从 javascript 中的键 rethinkdb 列表中获取多个文档

    我有一个 人 数据表 它有一个唯一的键 id 我有一个 id 列表 我想获取这些数据 并将其作为 JSON 数组从客户端发送到服务器 服务器以 JSON 数组的形式接收该数据 现在有没有一种方法可以运行查询来获取每个 id 的文档 或者是我
  • DOM:获取文档中的所有文本节点(PHP)

    我有以下 PHP 代码 它遍历整个 DOM 文档以获取所有文本节点 这是一个有点丑陋的解决方案 我确信一定有更好的方法 那么 有吗 skip false node document nodes array while node if nod