I am not sure whether I understood your request entirely. XPath is quite mighty, but might not return useful and reliable results.
expect:/tmp$ package require tdom
0.8.2
expect:/tmp$ dom parse {<obj id="objectid_1" type="Object">
> <attr name="name">result</attr>
> <attr name="label">Result Label</attr>
> <attr max="200.0" min="0.0" name="xAxis" nominal="100.0"
> precision="0" qt="Frequency" units="Hz">100.0 Hz</attr>
> <attr max="10" min="5" name="yAxis"
> nominal="7.5" precision="0" qt="Damping" units="dB">7.5 Hz</attr>
> </obj>} dom
domDoc0x256f4e0
expect:/tmp$ $dom documentElement doc
domNode0x25a7858
expect:/tmp$ $doc selectNodes {/obj/attr[substring(@name,2)='Axis']/@qt}
{qt Frequency} {qt Damping}
expect:/tmp$ $doc selectNodes {/obj/attr[@name='xAxis' or @name='yAxis']/@qt}
{qt Frequency} {qt Damping}
expect:/tmp$ lmap cur [$doc selectNodes {/obj/attr[@name='xAxis' or @name='yAxis']/@qt}] {lindex $cur 1}
Frequency Damping
What happens to your implementation, when someone changes the order of attr-elements? It looks like the chosen format is meant to be de-serialized and then to be read from some data structures ...