【问题标题】:Sanitize Content: removing markup from Amazon's content清理内容:从亚马逊的内容中删除标记
【发布时间】:2011-01-31 09:13:13
【问题描述】:

我正在使用 Amazon Web Service 获取各种商品的产品描述。问题是亚马逊的内容包含有时会破坏我的网页布局的标记(例如未封闭的 DIV 等)。

我想清理从亚马逊获得的内容。我的解决方案是执行以下操作(到目前为止我的初始列表):

  • 删除不必要的标签,如divspan等,同时保留pulol等标签。
  • 从所有标签中删除所有属性(例如,某些标签中似乎有style 属性)
  • 删除多余的空格(例如多个空格、回车、换行、制表符等)

在我开始尝试构建我的解决方案之前,我想知道是否有人有更好的想法(或已经存在的解决方案)。谢谢。

【问题讨论】:

  • 是否需要通过正则表达式来完成?它们可能是解析 HTML 的最差工具。
  • 不,它没有。我在想有些可以用 RegEx 完成(例如空格等)。我可能会尝试将标记放在 DOM 中并使用 XPath 等来操作标记的 sn-p。

标签: php html regex html-parsing


【解决方案1】:

这是否是最好的主意:

删除多余的空格:

preg_replace('/\s+/', ' ', trim($v))

从 HTML 元素中删除属性:

preg_replace('/<([^\s>]+) [^>]+>/', '<$1>', $v)

移除特定元素:

preg_replace('/<\/?(div|span)[^>]*>/', '', $v)

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 2021-02-22
    • 1970-01-01
    • 2011-02-03
    • 2019-07-09
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多