In TCL Script
<server serverName='localhost'>
<port Number="6209" xmlLoc="path">
<pollerName>Nymex Feed Test1</pollerName>
<pollerName>Nymex Feed Test2</pollerName>
</port>
<port Number="6209" xmlLoc="path">
<pollerName>Nymex Feed Test1</pollerName>
<pollerName>Nymex Feed Test2</pollerName>
</port>
</server>
I want to read above xml tag attributes and node values into variables.
Please advise.
Updated: Below is the final Solution to read XML.
package require tdom
set xmlpath "test.xml"
set fd [open $xmlpath]
set xml [read $fd]
set doc [dom parse $xml]
set root [$doc documentElement]
foreach node [$root selectNodes "/server/port"] {
set num [$node getAttribute Number]
set loc [$node getAttribute xmlLoc]
puts $num
puts $loc
foreach nodeList [$node selectNodes ./pollerName/text()] {
puts [$nodeList nodeValue]
}
}
Later on:
i can not use variable into nested loop to call Function , it fails to call Function in second loop. Please advise CODE::
proc remoteTelnet {serNumber pNumber xmlRoot} {
set body1 [concat $body "<tr><td>$pNumber and $polName</td> <td>Password not changed</td></tr>"]
puts "Poller:-- $polName"
}
foreach node [$root selectNodes "/server/port"] {
set num [$node getAttribute Number]
set loc [$node getAttribute xmlLoc]
foreach nodeList [$node selectNodes ./pollerName/text()] {
set poller [$nodeList nodeValue]
puts "Poller: $poller"
puts "Port: $num"
puts "Xml Path: $loc"
remoteTelnet $host $num $loc
}
}