python - 删除不必要的内部标签

标签 python html beautifulsoup

我们正在通过一些外部转换器工具将 DOCX 转换为 HTML。 为表格生成的 HTML 包含如下内容:

<td><div><span><b>Patienten</b></span></div></td>

<div><span> TD 中的标签在这里完全是多余的。

预期的结果是

<td><b>Patienten</b></td>

是否有机会使用 BeautifulSoup 以理智的方式移除它们?

最佳答案

嗯,<div><span>标签具有结构意义,不能被自动猜测为“多余”。

您的问题看起来与编译器中完成的 AST(抽象语法树)优化非常相似。您可以尝试定义一些规则并构建一个 SoupOptimizer获取一棵树(您的文档)并生成优化的输出树。规则可以是:

  • span(content) -> 内容,如果 span.attributes 为空
  • div(content) -> 内容,如果 div.attributes 为空

请注意,XML 方言上的树转换可以使用 XSLT 完成。准备好在你看到光明之前把你的大脑翻个底朝天!

关于python - 删除不必要的内部标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473966/

相关文章:

python - 使用 BeautifulSoup 抓取 Google 搜索

python - Beautiful Soup 跳过评论和脚本标签

python - 如何在正则表达式中查找连续重复?

javascript - JQuery 检查复选框是否被选中

Python 循环检查列

javascript - 使用javascript将td宽度更改为百分比

javascript - Angularjs:单选按钮选择更改时更新模型

python - 如何提取div中的特定链接?

python - 从 shutil 文件复制线程获取进度

python - 当前用 Python 包装现代 Fortran 代码的最佳方法