我正在尝试打印节点值,但它什么都不打印。这是代码:
package require dom;
set XML "
<top number='1'>
<a>Name</a>
<b>589</b>
<email>name@example.com</email>
<website/>
<parts>
<widget sku='XYZ123' />
<widget sku='ABC789' />
</parts>
</top>
"
set doc [::dom::parse $XML]
set root [$doc cget -documentElement]
set node [$root cget -firstChild]
set node [$root cget -nextSibling]
set node [$root cget -firstChild]
puts "[$node cget -nodeValue]"
答案 0 :(得分:1)
根据TclDOM documentation,您应该使用stringValue
方法获取节点的字符串内容。
puts [$node stringValue]
您可能应该使用selectNode
方法选择要打印的元素,而不是手动执行此操作; XPath比直接DOM更简单:
set doc [dom::parse $XML]
set node [[$doc cget -documentElement] selectNode "/top/b"]
puts [$node stringValue]