|
@@ -120,8 +120,43 @@ func NewTD(Goquery *goquery.Selection, tr *TR, table *Table) *TD {
|
|
|
//子table处理合并
|
|
|
if ht.Size() > 0 {
|
|
|
//qutil.Debug("有子表格")
|
|
|
+ //格式化正文
|
|
|
txt = TextAfterRemoveTable(td.Html)
|
|
|
td.tdHasTable(&bsontable, tr, table) //处理td中的table,块标签处理,子表解析集处理
|
|
|
+ //处理table外内容
|
|
|
+ var ub []*u.Block
|
|
|
+ ub, _ = DivideBlock(txt, 2, table.TableResult.RuleBlock)
|
|
|
+ //看是否划块
|
|
|
+ if len(ub) > 0 {
|
|
|
+ colonKvWeight := map[string]int{}
|
|
|
+ spaceKvWeight := map[string]int{}
|
|
|
+ for _, bl := range ub {
|
|
|
+ //冒号kv
|
|
|
+ for bl_ck, bl_cv := range bl.ColonKV.Kv {
|
|
|
+ if td.SortKV.Map[bl_ck] == nil || bl.ColonKV.KvTag[bl_ck].Weight >= colonKvWeight[bl_ck] {
|
|
|
+ colonKvWeight[bl_ck] = bl.ColonKV.KvTag[bl_ck].Weight
|
|
|
+ td.SortKV.AddKey(bl_ck, bl_cv)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //空格kv
|
|
|
+ for bl_sk, bl_sv := range bl.SpaceKV.Kv {
|
|
|
+ if td.SortKV.Map[bl_sk] == nil || bl.SpaceKV.KvTag[bl_sk].Weight >= spaceKvWeight[bl_sk] {
|
|
|
+ spaceKvWeight[bl_sk] = bl.SpaceKV.KvTag[bl_sk].Weight
|
|
|
+ td.SortKV.AddKey(bl_sk, bl_sv)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //调用kv解析
|
|
|
+ cKV := GetKVAll(txt, "", nil, 1)
|
|
|
+ for k,v :=range cKV.Kv{
|
|
|
+ td.SortKV.AddKey(k,v)
|
|
|
+ }
|
|
|
+ sKV := SspacekvEntity.Entrance(txt, "", nil)
|
|
|
+ for k,v :=range sKV.Kv{
|
|
|
+ td.SortKV.AddKey(k,v)
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
txt = strings.TrimSpace(td.Goquery.Text())
|
|
|
}
|
|
@@ -174,7 +209,13 @@ func (td *TD) tdHasTable(bsontable *bool, tr *TR, table *Table) {
|
|
|
}
|
|
|
sonts := AnalyTableV2(tabs, ts.Toptype, stag, td.Html, 2, ts.Id, table.TableResult.RuleBlock) //又一次调用解析表格入口
|
|
|
td.BH = false
|
|
|
- td.SonTableResult = sonts
|
|
|
+ for k,v := range sonts.SortKV.Map{
|
|
|
+ if td.SonTableResult == nil{
|
|
|
+ td.SonTableResult = NewTableResult(sonts.Id,sonts.Toptype,sonts.BlockTag,sonts.Html,sonts.Itype,sonts.RuleBlock)
|
|
|
+ }
|
|
|
+ td.SonTableResult.SortKV.AddKey(k,v)
|
|
|
+ }
|
|
|
+ //td.SonTableResult = sonts
|
|
|
//for _, k := range sonts.SortKV.Keys {
|
|
|
//u.Debug(k, sonts.SortKV.Map[k])
|
|
|
// td.TR.Table.StandKV[k] = sonts.SortKV.Map[k].(string)
|