正在寻找一个HTML解析器来对文本节点进行搜索/替换



我需要在许多静态html文件中进行大量的各种搜索和替换。我遇到的一个问题是,当真正我想要搜索/替换的都是文本节点时,我会在url中获得匹配。

因此,这使得正则表达式更加困难,而且很可能更容易出错,因为您现在正在使用它们解析html。

只在文本节点上进行搜索/替换的最简单方法是什么?我说的是,你可以在几分钟内启动并运行,而不需要Python Java Ruby Headless Phantom PHP Node FluxCapacitor中的硕士学位。

请给我建议,就好像你在和一个白痴说话一样。

我使用的是Windows 7

我想要的是类似Notepad++中的搜索/替换功能。你给它一个开始搜索的目录,它递归搜索,点击你指定的每一种类型的文件(如.html或.shtml),告诉它搜索什么以及用什么替换它。它运行10或15秒后,您可能会一下子编辑数百个文件。你知道,非常简单的东西。

所以这就是我想要做的,但只是在文本节点中搜索/替换。

SublimeText 2具有一些非常强大的文本搜索功能,可以让您按照自己的解释进行搜索,因此,虽然我认为我可以为你指明正确的方向-我自己仍在学习如何使用它-但它确实有"在文件中查找"选项,这意味着你可以在许多不同的文件中获取所选单词并替换它-但我还没有找到排除可能不需要更改的无关单词的方法。希望其他人能来启发你。

你可能想在你的原始帖子中添加标签"Sublime text 2",以扩大受众

您可以在http://htql.net.一些例子:

page="<html> <body> <table> <tr><td id='cell1'> test1 </td></tr> <tr> <td id='cell2'> test2 </td> </tr> </table> </body> </html>"
import htql
print(htql.query(page, "<td (id='cell1')>:tx &replace('XXXX') "))
#[("<html> <body> <table> <tr><td id='cell1'>XXXX</td></tr> <tr> <td id='cell2'> test2 </td> </tr> </table> </body> </html>",)]
print(htql.query(page, "<td (id='cell1')>:id &replace('ZZZZ') "))
#[("<html> <body> <table> <tr><td id='ZZZZ'> test1 </td></tr> <tr> <td id='cell2'> test2 </td> </tr> </table> </body> </html>",)]
print(htql.query(page, "<td (id like 'cell%')>:tx &replace('YYYY') "))
#[("<html> <body> <table> <tr><td id='cell1'>YYYY</td></tr> <tr> <td id='cell2'>YYYY</td> </tr> </table> </body> </html>",)]

最新更新