如何删除HTML表格中的格式? (只清楚等)

时间:2011-07-14 10:00:21

标签: html

我有一个从MS Word粘贴的html表。我需要只有清晰的HTML表格。没有风格,没有格式,没有高度,宽度等。只是<表> < TBODY> < TR> < TD> < / TD> < / TR> < / TBODY> < /表>

是否有人知道某些功能或某些程序,可以在所有源代码中删除此格式? 粘贴表的数量很高,每个粘贴的表都有另一种格式。

谢谢!

表(例如)看起来像这样:

<p>
<table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 105.25pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="140">
            <div style="text-align: right; margin: 0cm 27.85pt 0pt 0cm" align="right"><em><span style="letter-spacing: -0.05pt; color: black; font-size: 6pt">A</span></em></div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 105.25pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="140">
            <div style="text-align: right; margin: 0cm 27.85pt 0pt 0cm" align="right"><em><span style="letter-spacing: -0.05pt; color: black; font-size: 6pt">B</span></em></div>
            </td>
        </tr>
    </tbody>
</table>
</p>

我需要的形式是:

<table>
  <tbody>
    <tr>
      <td>a</td>
      <td>b</td>
    </tr>
  </tbody>
</table>

5 个答案:

答案 0 :(得分:2)

A找到了在线工具Clean up HTML code

从剪贴板中输入代码,然后按“清除此文字”

答案 1 :(得分:1)

通过一些正则表达式运行标记?如果样式与style =“foo:bar;”内联完成你可以试试这个RegEx:style=["|'].*["|']

答案 2 :(得分:1)

您需要一种方法来运行正则表达式搜索和替换。

这应该修复你想要保留的表标签(但要删除属性)。

/<((table)|(tbody)|(td)|(tr))[^>]*>/<\1>/

第一部分匹配任何表格标记的全部内容(从打开的<开始,匹配适当的单词,继续进行任何非结束追踪>,然后匹配结束{{1}它取代了>

然后,您必须运行另一个传递来删除所有其他不是表标记的标记。

这是一个程序有点沉重。我相信你可以在那里找到一种工具来做这类事情。

或者,只需从Word中删除格式,复制/粘贴,不要担心剩余的样式。

答案 3 :(得分:0)

使用您喜欢的语言(Python,Ruby,PERL等)将HTML解析器解析为DOM树,运行适当的DOM函数以从所述元素中剥离style属性(并执行其他必要的DOM)操作),并将DOM树重新序列化为HTML。使用Hpricot(Ruby库),它可能看起来像这样:

require 'rubygems'
require 'hpricot'

the_html = ""
open("<infile>", "r").each {|s| the_html << s}
html_doc= Hpricot(the_html)
html_doc.search("table,tr,td").remove_attr("style")
html_doc.search("table").remove_attr("cellspacing").remove_attr("border").remove_attr("cellpadding")
html_doc.search("td").remove_attr("width").remove_attr("valign")
html_doc.search("td").each do |td|
    td.inner_html = td.inner_text
end

puts html_doc.to_html

答案 4 :(得分:0)

如果您使用的是Linux。这是我的解决方案。

  1. 在libreoffice中打开文件
  2. 选择表并复制
  3. 粘贴gtk-htmledit
  4. 从gtkhtml编辑器
  5. 复制源代码