2016-02-17 108 views

回答

1

這取決於你在做什麼。您可以通過創建註釋節點並將其插入到DOM樹中,或通過從列表描述符中插入或通過從腳本插入來添加註釋。

package require tdom 

set doc [dom createDocument book] 
set root [$doc documentElement] 
$root appendChild [$doc createComment "book 1 price"] 

如果你已經有一個文件,只是想在上面添加評論,你可以這樣做:

set doc [dom parse ...] 
set root [$doc documentElement] 
$root insertBefore [$doc createComment "book 1 price"] [$root firstChild] 

如果你沒有一個文檔,需要創建nameprice元素,逐個創建節點變得太乏味。相反,一個能做到這一點:如果你想從數據結構填充文件,並可能增加一些邏輯

set doc [dom createDocument book] 
set root [$doc documentElement] 
$root appendFromList {#comment "book 1 price"} 
$root appendFromList {name {} {{#text abc}}} 
$root appendFromList {price {} {{#text 150}}} 

,你可能會想使用appendFromScript,這意味着你需要首先定義一些命令節點。

dom createNodeCmd element book 
dom createNodeCmd element name 
dom createNodeCmd element a 
dom createNodeCmd element price 
dom createNodeCmd comment c 
dom createNodeCmd text t 

set doc [dom createDocument books] 
set root [$doc documentElement] 
set n 0 
foreach {nm pr} { 
    abc 150 
    def 120 
    ghi 200 
} { 
    incr n 
    $root appendFromScript {book id $n { 
     c "book $n price" 
     name {a href "http://what/ever?book=$n" {t $nm}} 
     price {t $pr} 
    }} 
} 

(注:在文檔中,則類型參數createNodeCmd應該是elementNodecommentNodetextNode等IME它可以縮寫爲一個或兩個字母,例如e/t/co離開。出Node部分似乎是一個清晰的妥協)

文檔:foreachincrpackagesettDOM