使用CMD或JavaScript批量查找和删除部分HTML文件

使用CMD或JavaScript批量查找和删除部分HTML文件,javascript,html,xpath,sed,html-parsing,Javascript,Html,Xpath,Sed,Html Parsing,假设文件夹中有一组text.html文件 我需要处理每个文件并删除特定HTML标记的内容,包括标记本身。处理后必须重写文件 示例: 删除所有块 删除所有块,包括内部内容 像sed-i-e's/Regex//g'*.html这样的正则表达式工具不适合html处理。因此,我正在寻找专注于HTML解析的解决方案,例如基于XPATH的//script,//div[@class=“test class”] 实现此目的的最佳方法是什么?要使用xmlstarlet编辑当前目录中的所有.html文件: xmls

假设文件夹中有一组text.html文件

我需要处理每个文件并删除特定HTML标记的内容,包括标记本身。处理后必须重写文件

示例:

  • 删除所有
  • 删除所有
    块,包括内部内容
  • sed-i-e's/Regex//g'*.html这样的正则表达式工具不适合html处理。因此,我正在寻找专注于HTML解析的解决方案,例如基于XPATH的
    //script
    //div[@class=“test class”]


    实现此目的的最佳方法是什么?

    要使用xmlstarlet编辑当前目录中的所有.html文件:

    xmlstarlet edit --inplace --omit-decl --delete '//script' --delete '//div[@class="test-class"]' *.html
    

    请参阅:
    xmlstarlet编辑--help

    这可能有助于处理损坏的html文件:

    xmlstarlet format --recover --html file.html |\
      xmlstarlet edit --omit-decl --delete '//script' --delete '//div[@class="test-class"]' > new.html
    

    我建议使用XML/HTML解析器(xmlstarlet,xmllint…)。如果您的问题包括一个具有简明、可测试的样本输入和预期输出的示例,那么我希望您能得到帮助。谢谢@Cyrus。但是
    xmlstarlet
    的问题是,它对html格式非常敏感,并且会产生错误,例如
    打开和结束标记不匹配
    找不到开始标记html的结尾
    。它没有任何内置的html规范化工具,我也看不到在将html文件传递给xmlstarlet之前如何格式化html文件的简单方法。@AlexDasata在将文件传递给xmlstarlet之前,您可以先通过html Tidy运行这些文件