使用tritium转换html中的表

时间:2013-04-23 18:52:33

标签: html-table transform moovweb tritium

我正在使用Moovweb SDK,我希望将表及其所有元素转换为div,以方便移动网络开发/样式。做这个的最好方式是什么?

<body>
  <table>
    <tbody>
      <tr>
        <td>
          ...
        </td>
      <tr>
     </tbody>
  </table>
</body>

1 个答案:

答案 0 :(得分:6)

我在许多名为table_dump的项目中看到了一个用于此目的的函数。我不能因为发明它而受到赞扬,但这里完全是:

@func XMLNode.table_dump(Text %xpath){
  $(%xpath) {
    name("div")
    add_class("mw_was_table")

    $(".//table | .//tr | .//td | .//th | .//thead | .//tfoot | .//tbody | .//col | .//colgroup | .//caption") {
      %i = index()
      %n = name()
      name("div")
      attributes(data-mw-id: concat("mw_dump_", %n, %i), width: "")
      add_class(concat("mw_was_", %n))
    }

    yield()
  }
}

它确实做了三件事:

  1. 将所有表格和表格元素更改为div
  2. 为每个前表元素提供一个类mw_was_及其前一个元素
  3. 根据索引,为每个元素指定一个唯一ID data-mw-id
  4. 有了这三个,你可以摆脱一张桌子,同时保留其元素的多样性。这样,即使在转换它之后,它仍然可以在XPath和CSS中轻松选择。