【问题标题】:Removing/editing HTML tags from local file从本地文件中删除/编辑 HTML 标签
【发布时间】:2020-12-27 21:12:02
【问题描述】:

我想删除/编辑文件中的几个 HTML 标签。

最小示例:我的磁盘上有这个输入 HTML 文件

<!DOCTYPE html>
<html clang="en">

<head>
<meta charset="utf-8">
<title>test</title>
<style>
.remove-tag { color: #FF0000; }
.remove-div { color: #0000FF; }
</style>
</head>

<body>

<p>Hello world!</p>

<div class="remove-tag">
<p>I just want to remove the open/close div tags</p>
</div>

<div class="remove-div">
<p>I want the remove the div and all its content</p>
</div>

</body>

</html>

我想处理它以便得到它

<!DOCTYPE html>
<html clang="en">

<head>
<meta charset="utf-8">
<title>test</title>
<style>
.remove-tag { color: #FF0000; }
.remove-div { color: #0000FF; }
</style>
</head>

<body>

<p>Hello world!</p>

<p>I just want to remove the open/close div tags</p>

</body>

</html>

您认为最简单/最直接的方法是什么?我希望能够编写某种脚本以在给定文件上本地运行以获取输出。或者有一些软件可以提供遵循的规则列表。

我对 regex/sed/... 非常有信心,但使用这些工具对于玩 HTML 标签来说是一个很大的禁忌(并且可以理解为什么)。

我读过关于 javascript (getElementsByClassName(), ...) 的文章。使用 javascript 做了一些初步步骤,安装 Node.js。我什至无法打开文档来检索元素......看起来我必须安装/导入 jsdom。我有点卡住了...

了解 jQuery。看过几个命令示例,但我不知道如何在本地文件上运行它们。总的来说,我对 jQuery 完全是个菜鸟。

阅读 HTML 解析器。 Python 似乎有一个 HTML 解析器库,我可以使用它来完成任务。

还希望有一个HTML解析器软件;好像没有。

还有其他提示吗?

【问题讨论】:

  • 我可以在浏览器之外使用独立脚本定义/打开/操作document吗?
  • 我理解了这个问题,你不想在浏览器中操作代码,而是直接在文档中操作。我会重做我的cmets

标签: javascript html parsing dom tags


【解决方案1】:

试试这个脚本:

<script>

   var removeTag= document.getElementsByClassName('remove-tag'); 
   for(var i=0; i<removeTag.length;i++){
      var innerHTML =  removeTag[i].innerHTML; 
      let div = document.createElement('div');
      div.innerHTML = innerHTML;
      insertAfter(div,removeTag[i]);
      removeTag[i].remove();
    
      }


         var removeDiv= document.getElementsByClassName('remove-div');  
         for(var i=0; i<removeDiv.length;i++){
            removeDiv[i].remove();
         }



      function insertAfter(newNode, existingNode) {
           existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling);
        }
    </script>

【讨论】:

  • 这必须通过浏览器完成,将脚本标签添加到 HTML 文件本身,对吗?如何调用脚本从文件内部修改文件(!!)?此外,我更喜欢在浏览器之外使用独立脚本执行此操作的方法。
  • 这个脚本是为客户端使用的,如果你想要outaide浏览器你最常在服务器端使用nodejs或php或c# python ....
  • 您可以更改标签并删除 dom 标签,因为 dom 用于浏览器并使用服务器端语言标签
  • 您认为哪种方法更直接? (nodejs, C#, python) 我对C++有很好的了解,所以我可以搜索一个库来操作DOM。脚本可以更容易开发,因为我将进行多次试错编辑。在这种情况下可能是 phyton,因为我基本上知道如何使用它并且已经拥有运行脚本所需的东西。你的意见?
  • 我写了一些在渲染页面的输出结果(html 输出)中运行的代码,并使用常规专家(regex)删除空标签和删除特殊标签。您可以在任何语言中使用正则表达式,例如 phthon
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 2013-11-21
  • 1970-01-01
  • 2020-12-08
  • 2018-07-07
  • 2013-07-19
  • 1970-01-01
相关资源
最近更新 更多