速成班TDOM這個確切的任務:
獲取TDOM(注意包的名字拼寫不同):
% package require tdom
0.8.3
創建一個空的文件有根元素叫foobar
:
% set doc [dom createDocument foobar]
domDoc02569130
修復根目錄:
% set root [$doc documentElement]
domNode025692E0
設置你的XML字符串之一:
% set direction(1) {<RouteLabel>Hurdman</RouteLabel>}
<RouteLabel>Hurdman</RouteLabel>
將它添加到DOM樹的根:
% $root appendXML $direction(1)
domNode025692E0
得到你想要的XPath表達式的字符串:
% $root selectNodes {string(//RouteLabel/text())}
Hurdman
或者通過查詢根目錄(只有在一次只插入一個文本節點的情況下才有效,否則將它們全部並置):
% $root asText
Hurdman
如果想從根本上清除DOM樹,以使其準備追加新的字符串不舊的干擾:
% foreach node [$root childNodes] {$node delete}
但是如果你使用XPath表達式,你應該能夠附加任意數量的XML字符串並仍然檢索其內容。
再次:
package require tdom
set doc [dom createDocument foobar]
set root [$doc documentElement]
set direction(1) {<RouteLabel>Hurdman</RouteLabel>}
$root appendXML $direction(1)
$root selectNodes {string(//RouteLabel/text())}
# => Hurdman
文檔: tdom (package)
它看起來就像你正在試圖[解析與正則表達式XML(https://stackoverflow.com/a/1732454/301832)。不要這樣做。使用tDOM包。 –
我只用這個正則表達式解析XML數據的衆所周知的單個字符串,簡單地實現一個正則表達式來解析出這個實例中的數據要快得多。這就是說,你有什麼好的tDOM包學習材料的建議嗎? –