0

我正在尝试打印节点值,但它什么也没打印。这是代码:

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]"
4

1 回答 1

1

根据TclDOM 文档,您应该使用该stringValue方法来获取节点的字符串内容。

puts [$node stringValue]

您可能应该使用该selectNode方法来选择要打印的元素,而不是手动这样做;XPath 比直接 DOM 更易于使用:

set doc [dom::parse $XML]
set node [[$doc cget -documentElement] selectNode "/top/b"]
puts [$node stringValue]
于 2013-07-16T12:39:56.633 回答