速成班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包学习材料的建议吗? –