gpt4 book ai didi

php - 在使用 DOM 解析 HTML 时保持文件偏移量?

转载 作者:行者123 更新时间:2023-12-04 14:14:57 24 4
gpt4 key购买 nike

我要修改<img src="">不太畸形的 HTML 中的属性(WordPress 帖子)。我知道我可以采用简单的方法并使用正则表达式,但恐怕 people in blue furry suits will come haunt me in my sleep .

如果我使用 DOM 解析器读取 HTML 并修改 <img>标签,恐怕我无法完全按照原样重建帖子(仅通过我的修改),因为 DOM 解析器可能会做太多清理工作,并可能删除必要的数据。 SAX 解析器可能无法处理无效的 XML,因此这也行不通。

那么,有没有一种中间方法,我可以使用 DOM 解析器,但它知道每个元素从哪里开始,所以我可以从那里进行字符串替换或类似的操作?我知道 DOM 树中的某些节点不会存在于源文档中(<b>Some <i>bizarre</b> formatting</i> 可能会触发它),但这是否意味着它总是不可能的?我看到有一个 DOMNode::getLineNo() function在 PHP 5.3 中添加,但我使用的是 5.2.x。

最佳答案

如果 PHP 的 DOM 会写出“太干净”的结果,您可以尝试基于字符串的 SimpleHTMLDOM是否更宽松。

但是,由于格式如您所展示的那样奇怪,我永远不会完全相信解析器会“正确”地完成它。但是试试看,也许它会跳过这些东西。

DOM 库的 DOMNode 类有一个 getLineNo()方法。我不完全明白这是如何工作的,因为它没有提供与之相配的偏移量。不确定这是否对您的用例有帮助。

关于php - 在使用 DOM 解析 HTML 时保持文件偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4155255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com