2013-04-23 42 views

回答

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. 根據索引,爲每個元素指定一個唯一標識爲data-mw-id

所有這三個你可以擺脫一張桌子,同時保留其元素的多樣性。這種方式在XPath和CSS中仍然可以輕鬆選擇,即使您已經對其進行了轉換。