我正在使用tDom来遍历一些XML并提取每个元素的文本()。TCL tDom空XML标记
set xml {
<systems>
<object>
<type>Hardware</type>
<name>Server Name</name>
<attributes>
<vendor></vendor>
</attributes>
</object>
<object>
<type>Hardware</type>
<name>Server Two Name</name>
<attributes>
<vendor></vendor>
</attributes>
</object>
</systems>
};
set doc [dom parse $xml]
set root [$doc documentElement]
set nodeList [$root selectNodes /systems/object]
foreach node $nodeList {
set nType [$node selectNodes type/text()]
set nName [$node selectNodes name/text()]
set nVendor [$node selectNodes attributes/vendor/text()]
# Etc...
puts "Type: "
puts [$nType data]
# Etc ..
puts [$nVendor data]
}
但是,当它试图打印出供应商,这是空的,它会导致错误无效命令名称“”。我怎么能忽略这一点,只需将$ nVendor设置为空字符串?
如果你写XPath的方式稍有不同,你可以保证结果列表中只有0或1的值,并使用'llength'来测试,这是一个简单的操作。 – 2010-04-15 14:15:54