3

Moovweb SDKを使用しています。テーブルとそのすべての要素を div に変換して、モバイル Web 開発/スタイリングを容易にしたいと考えています。これを行う最善の方法は何ですか?

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

1 に答える 1

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()
  }
}

実際には次の 3 つのことを行います。

  1. すべてのテーブルとテーブル要素を div に変更します
  2. mw_was_以前の各テーブル要素に、その前の要素を持つクラスを与える
  3. インデックスに基づいて、各要素に一意の ID を として付けdata-mw-idます。

これら 3 つすべてを使用すると、テーブルの要素の多様性を維持しながら、テーブルを取り除くことができます。このようにして、変換した後でも、XPath と CSS で簡単に選択できます。

于 2013-04-23T19:05:03.350 に答える