• New example for - only for the interested ones

    From Gerhard Reithofer@[email protected] to comp.lang.tcl on Wed Sep 17 10:50:20 2025
    From Newsgroup: comp.lang.tcl

    Hello all,
    I'm starting a new thread, the old one looks strange ?!?

    I have added another example with a single json array entry
    https://www.tech-edv.co.at/download/testdata/livedata_20250413.txt

    Again the previous example with a two member json array
    https://www.tech-edv.co.at/download/testdata/livedata_20250914.txt

    @Ted - man page found :-)
    But I'm on raspberry pi without development environment, do you have a
    link to a installable version for aarch64?
    Example looks good - will try.

    @saito - I have added another example, urls tested just now - should
    work ???

    Thanks to all - great group!!!
    --
    mailto:[email protected]
    http://www.tech-edv.co.at
    -- new email address --
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From [email protected] (Ted Nolan@tednolan to comp.lang.tcl on Wed Sep 17 12:55:41 2025
    From Newsgroup: comp.lang.tcl

    In article <[email protected]>,
    Gerhard Reithofer <[email protected]> wrote:
    Hello all,
    I'm starting a new thread, the old one looks strange ?!?

    I have added another example with a single json array entry
    https://www.tech-edv.co.at/download/testdata/livedata_20250413.txt

    Again the previous example with a two member json array
    https://www.tech-edv.co.at/download/testdata/livedata_20250914.txt

    @Ted - man page found :-)
    But I'm on raspberry pi without development environment, do you have a
    link to a installable version for aarch64?
    Example looks good - will try.


    Hmm. Given the popularity of the Pi, I feel sure there is one,
    but I'm not aware of where. Sorry. :-(
    --
    columbiaclosings.com
    What's not in Columbia anymore..
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Rich@[email protected] to comp.lang.tcl on Wed Sep 17 15:43:13 2025
    From Newsgroup: comp.lang.tcl

    Gerhard Reithofer <[email protected]> wrote:
    Hello all,
    I'm starting a new thread, the old one looks strange ?!?

    I have added another example with a single json array entry
    https://www.tech-edv.co.at/download/testdata/livedata_20250413.txt

    Again the previous example with a two member json array
    https://www.tech-edv.co.at/download/testdata/livedata_20250914.txt

    @Ted - man page found :-)
    But I'm on raspberry pi without development environment, do you have a
    link to a installable version for aarch64?
    Example looks good - will try.

    @saito - I have added another example, urls tested just now - should
    work ???

    Thanks to all - great group!!!

    Example using tDom (note, minimalist):

    #!/usr/bin/tclsh

    package require tdom

    set fd [open [lindex $argv 0] RDONLY]
    fconfigure $fd -encoding utf-8

    set json [dom parse -json [read $fd]]

    proc walk-tree {node} {
    # depth first search
    foreach child [$node childNodes] {
    walk-tree $child
    }
    # skip the very top level owner document node
    if {$node ne [$node ownerDocument]} {
    puts "node '$node' is a [$node nodeType] and a [$node jsonType] jsonType at xpath=[$node toXPath]"
    }
    }

    walk-tree $json

    Outputs for your two samples (note use of jsonType to show the
    underlying json type of the node at each step of the walk):

    $ ./gr livedata_20250413.txt

    node 'domNode0x68bf30' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/serial/text()
    node 'domNode0x68bed0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/serial
    node 'domNode0x68bfd0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/name/text()
    node 'domNode0x68bf70' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/name
    node 'domNode0x68c070' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/order/text()
    node 'domNode0x68c010' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/order
    node 'domNode0x68c130' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/data_age/text()
    node 'domNode0x68c0d0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/data_age
    node 'domNode0x68c1f0' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[1]/poll_enabled/text()
    node 'domNode0x68c190' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/poll_enabled
    node 'domNode0x68c2b0' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[1]/reachable/text()
    node 'domNode0x68c250' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/reachable
    node 'domNode0x68c370' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[1]/producing/text()
    node 'domNode0x68c310' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/producing
    node 'domNode0x68c430' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/limit_relative/text()
    node 'domNode0x68c3d0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/limit_relative
    node 'domNode0x68c4f0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/limit_absolute/text()
    node 'domNode0x68c490' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/limit_absolute
    node 'domNode0x68c6d0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power/v/text()
    node 'domNode0x68c670' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power/v
    node 'domNode0x68c790' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power/u/text()
    node 'domNode0x68c730' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power/u
    node 'domNode0x68c850' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power/d/text()
    node 'domNode0x68c7f0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power/d
    node 'domNode0x68c610' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power
    node 'domNode0x68c970' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Voltage/v/text()
    node 'domNode0x68c910' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Voltage/v
    node 'domNode0x68ca30' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Voltage/u/text()
    node 'domNode0x68c9d0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Voltage/u
    node 'domNode0x618cc0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Voltage/d/text()
    node 'domNode0x618c60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Voltage/d
    node 'domNode0x68c8b0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Voltage
    node 'domNode0x618de0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Current/v/text()
    node 'domNode0x618d80' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Current/v
    node 'domNode0x618ea0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Current/u/text()
    node 'domNode0x618e40' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Current/u
    node 'domNode0x618f60' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Current/d/text()
    node 'domNode0x618f00' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Current/d
    node 'domNode0x618d20' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Current
    node 'domNode0x619080' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power DC/v/text()
    node 'domNode0x619020' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power DC/v
    node 'domNode0x619140' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power DC/u/text()
    node 'domNode0x6190e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power DC/u
    node 'domNode0x619200' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power DC/d/text()
    node 'domNode0x6191a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power DC/d
    node 'domNode0x618fc0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Power DC
    node 'domNode0x619320' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldDay/v/text()
    node 'domNode0x6192c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldDay/v
    node 'domNode0x6193e0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldDay/u/text()
    node 'domNode0x619380' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldDay/u
    node 'domNode0x6194a0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldDay/d/text()
    node 'domNode0x619440' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldDay/d
    node 'domNode0x619260' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldDay
    node 'domNode0x6195c0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldTotal/v/text()
    node 'domNode0x619560' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldTotal/v
    node 'domNode0x619680' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldTotal/u/text()
    node 'domNode0x619620' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldTotal/u
    node 'domNode0x619740' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldTotal/d/text()
    node 'domNode0x6196e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldTotal/d
    node 'domNode0x619500' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/YieldTotal
    node 'domNode0x619860' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Frequency/v/text()
    node 'domNode0x619800' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Frequency/v
    node 'domNode0x619920' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Frequency/u/text()
    node 'domNode0x6198c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Frequency/u
    node 'domNode0x6199e0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Frequency/d/text()
    node 'domNode0x619980' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Frequency/d
    node 'domNode0x6197a0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Frequency
    node 'domNode0x619b00' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/PowerFactor/v/text()
    node 'domNode0x619aa0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/PowerFactor/v
    node 'domNode0x619bc0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/PowerFactor/u/text()
    node 'domNode0x619b60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/PowerFactor/u
    node 'domNode0x619c80' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/PowerFactor/d/text()
    node 'domNode0x619c20' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/PowerFactor/d
    node 'domNode0x619a40' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/PowerFactor
    node 'domNode0x619da0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/ReactivePower/v/text()
    node 'domNode0x619d40' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/ReactivePower/v
    node 'domNode0x619e60' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/ReactivePower/u/text()
    node 'domNode0x619e00' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/ReactivePower/u
    node 'domNode0x619f20' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/ReactivePower/d/text()
    node 'domNode0x619ec0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/ReactivePower/d
    node 'domNode0x619ce0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/ReactivePower
    node 'domNode0x61a040' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Efficiency/v/text()
    node 'domNode0x619fe0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Efficiency/v
    node 'domNode0x61a100' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Efficiency/u/text()
    node 'domNode0x61a0a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Efficiency/u
    node 'domNode0x61a1c0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Efficiency/d/text()
    node 'domNode0x61a160' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Efficiency/d
    node 'domNode0x619f80' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0/Efficiency
    node 'domNode0x68c5b0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC/0
    node 'domNode0x68c550' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/AC
    node 'domNode0x61a3a0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/0/name/u/text()
    node 'domNode0x61a340' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/name/u
    node 'domNode0x61a2e0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/0/name
    node 'domNode0x61a4c0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Power/v/text()
    node 'domNode0x61a460' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Power/v
    node 'domNode0x61a580' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Power/u/text()
    node 'domNode0x61a520' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Power/u
    node 'domNode0x61a640' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Power/d/text()
    node 'domNode0x61a5e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Power/d
    node 'domNode0x61a400' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Power
    node 'domNode0x61a760' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Voltage/v/text()
    node 'domNode0x61a700' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Voltage/v
    node 'domNode0x61a820' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Voltage/u/text()
    node 'domNode0x61a7c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Voltage/u
    node 'domNode0x69cb40' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Voltage/d/text()
    node 'domNode0x69cae0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Voltage/d
    node 'domNode0x61a6a0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Voltage
    node 'domNode0x69cc60' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Current/v/text()
    node 'domNode0x69cc00' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Current/v
    node 'domNode0x69cd20' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Current/u/text()
    node 'domNode0x69ccc0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Current/u
    node 'domNode0x69cde0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Current/d/text()
    node 'domNode0x69cd80' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Current/d
    node 'domNode0x69cba0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/0/Current
    node 'domNode0x69cf00' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldDay/v/text()
    node 'domNode0x69cea0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldDay/v
    node 'domNode0x69cfc0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldDay/u/text()
    node 'domNode0x69cf60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldDay/u
    node 'domNode0x69d080' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldDay/d/text()
    node 'domNode0x69d020' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldDay/d
    node 'domNode0x69ce40' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldDay
    node 'domNode0x69d1a0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldTotal/v/text()
    node 'domNode0x69d140' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldTotal/v
    node 'domNode0x69d260' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldTotal/u/text()
    node 'domNode0x69d200' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldTotal/u
    node 'domNode0x69d320' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldTotal/d/text()
    node 'domNode0x69d2c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldTotal/d
    node 'domNode0x69d0e0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/0/YieldTotal
    node 'domNode0x61a280' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/0
    node 'domNode0x69d4a0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/1/name/u/text()
    node 'domNode0x69d440' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/name/u
    node 'domNode0x69d3e0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/1/name
    node 'domNode0x69d5c0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Power/v/text()
    node 'domNode0x69d560' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Power/v
    node 'domNode0x69d680' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Power/u/text()
    node 'domNode0x69d620' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Power/u
    node 'domNode0x69d740' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Power/d/text()
    node 'domNode0x69d6e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Power/d
    node 'domNode0x69d500' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Power
    node 'domNode0x69d860' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Voltage/v/text()
    node 'domNode0x69d800' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Voltage/v
    node 'domNode0x69d920' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Voltage/u/text()
    node 'domNode0x69d8c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Voltage/u
    node 'domNode0x69d9e0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Voltage/d/text()
    node 'domNode0x69d980' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Voltage/d
    node 'domNode0x69d7a0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Voltage
    node 'domNode0x69db00' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Current/v/text()
    node 'domNode0x69daa0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Current/v
    node 'domNode0x69dbc0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Current/u/text()
    node 'domNode0x69db60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Current/u
    node 'domNode0x69dc80' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Current/d/text()
    node 'domNode0x69dc20' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Current/d
    node 'domNode0x69da40' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/1/Current
    node 'domNode0x69dda0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldDay/v/text()
    node 'domNode0x69dd40' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldDay/v
    node 'domNode0x69de60' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldDay/u/text()
    node 'domNode0x69de00' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldDay/u
    node 'domNode0x69df20' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldDay/d/text()
    node 'domNode0x69dec0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldDay/d
    node 'domNode0x69dce0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldDay
    node 'domNode0x69e040' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldTotal/v/text()
    node 'domNode0x69dfe0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldTotal/v
    node 'domNode0x69e100' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldTotal/u/text()
    node 'domNode0x69e0a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldTotal/u
    node 'domNode0x69e1c0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/DC/1/YieldToNode0x69e4c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/INV/0/Temperature/d
    node 'domNode0x69e2e0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/INV/0/Temperature
    node 'domNode0x69e280' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/INV/0
    node 'domNode0x69e220' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/INV
    node 'domNode0x69e5e0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/events/text()
    node 'domNode0x69e580' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/events
    node 'domNode0x68be70' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]
    node 'domNode0x69e700' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/serial/text()
    node 'domNode0x69e6a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/serial
    node 'domNode0x69e7c0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/name/text()
    node 'domNode0x69e760' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/name
    node 'domNode0x69e880' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/order/text()
    node 'domNode0x69e820' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/order
    node 'domNode0x69e940' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/data_age/text()
    node 'domNode0x69e8e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/data_age
    node 'domNode0x69ea00' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[2]/poll_enabled/text()
    node 'domNode0x69e9a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/poll_enabled
    node 'domNode0x5b6290' is a TEXT_NODE and a FALSE jsonType at xpath=/inverters/objectcontainer[2]/reachable/text()
    node 'domNode0x69ea60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/reachable
    node 'domNode0x63e9c0' is a TEXT_NODE and a FALSE jsonType at xpath=/inverters/objectcontainer[2]/producing/text()
    node 'domNode0x63e960' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/producing
    node 'domNode0x63ea80' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/limit_relative/text()
    node 'domNode0x63ea20' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/limit_relative
    node 'domNode0x63eb40' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/limit_absolute/text()
    node 'domNode0x63eae0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/limit_absolute
    node 'domNode0x63ed20' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Power/v/text()
    node 'domNode0x63ecc0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Power/v
    node 'domNode0x63ede0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Power/u/text()
    node 'domNode0x63ed80' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Power/u
    node 'domNode0x63eea0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Power/d/text()
    node 'domNode0x63ee40' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Power/d
    node 'domNode0x63ec60' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Power
    node 'domNode0x63efc0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Voltage/v/text()
    node 'domNode0x63ef60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Voltage/v
    node 'domNode0x63f080' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Voltage/u/text()
    node 'domNode0x63f020' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Voltage/u
    node 'domNode0x63fEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldDay/v/text()
    node 'domNode0x63f740' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldDay/v
    node 'domNode0x63f860' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldDay/u/text()
    node 'domNode0x63f800' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldDay/u
    node 'domNode0x63f920' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldDay/d/text()
    node 'domNode0x63f8c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldDay/d
    node 'domNode0x63f6e0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldDay
    node 'domNode0x63fa40' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldTotal/v/text()
    node 'domNode0x63f9e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldTotal/v
    node 'domNode0x63fb00' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldTotal/u/text()
    node 'domNode0x63faa0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldTotal/u
    node 'domNode0x63fbc0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldTotal/d/text()
    node 'domNode0x63fb60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldTotal/d
    node 'domNode0x63f980' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/AC/0/YieldTotal
    node 'domNode0x63fce0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Frequency/v/text()
    node 'domNode0x63fc80' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Frequency/v
    node 'domNode0x63fda0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Frequency/u/text()
    node 'domNode0x63fd40' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Frequency/u
    node 'domNode0x63fe60' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Frequency/d/text()
    node 'domNode0x63fe00' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Frequency/d
    node 'domNode0x63fc20' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/AC/0/Frequency
    node 'domNode0x63ff80' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/PowerFactor/v/text()
    node 'domNode0x63ff20' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/PowerFactor/v
    node 'domNode0x640040' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/AC/0/PowerFactor/u/text()
    node 'domNode0x63ffe0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/PowerFactor/u
    node 'domNode0x640100' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/PowerFactor/d/text()
    node 'domNode0x6400a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/PowerFactor/d
    node 'domNode0x63fec0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/AC/0/PowerFactor
    node 'domNode0x640220' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/AC/0/ReactivePower/v/text()
    node 'domNode0x6401c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/AC/0/ReactivePower/v
    nod' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/DC/0/name/u/text()
    node 'domNode0x6407c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/name/u
    node 'domNode0x640760' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/DC/0/name
    node 'domNode0x61a880' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Power/v/text()
    node 'domNode0x6408e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Power/v
    node 'domNode0x6d6c30' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Power/u/text()
    node 'domNode0x6d6bd0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Power/u
    node 'domNode0x6d6cf0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Power/d/text()
    node 'domNode0x6d6c90' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Power/d
    node 'domNode0x640880' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Power
    node 'domNode0x6d6e10' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Voltage/v/text()
    node 'domNode0x6d6db0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Voltage/v
    node 'domNode0x6d6ed0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Voltage/u/text()
    node 'domNode0x6d6e70' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Voltage/u
    node 'domNode0x6d6f90' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Voltage/d/text()
    node 'domNode0x6d6f30' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Voltage/d
    node 'domNode0x6d6d50' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Voltage
    node 'domNode0x6d70b0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Current/v/text()
    node 'domNode0x6d7050' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Current/v
    node 'domNode0x6d7170' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Current/u/text()
    node 'domNode0x6d7110' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Current/u
    node 'domNode0x6d7230' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Current/d/text()
    node 'domNode0x6d71d0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Current/d
    node 'domNode0x6d6ff0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/DC/0/Current
    node 'domNode0x6d7350' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/YieldDay/v/text()
    node 'domNode0x6d72f0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/YieldDay/v
    node 'domNode0x6d7410' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/DC/0/YieldDay/u/text()
    node 'domNode0x6d73b0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/YieldDay/u
    node 'domNode0x6d74d0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/DC/0/YieldDay/d/text()
    node 'domNode0x6d7470' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/DC/0/YieldDay/d
    node 'domNode0x6d7290' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontaType at xpath=/inverters/objectcontainer[2]/INV/0/Temperature/d/text()
    node 'domNode0x6d7a70' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/INV/0/Temperature/d
    node 'domNode0x6d7890' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/INV/0/Temperature
    node 'domNode0x6d7830' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/INV/0
    node 'domNode0x6d77d0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/INV
    node 'domNode0x6d7b90' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/events/text()
    node 'domNode0x6d7b30' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/events
    node 'domNode0x69e640' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]
    node 'domNode0x68be10' is a ELEMENT_NODE and a ARRAY jsonType at xpath=/inverters
    node 'domNode0x6d7d10' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/Power/v/text()
    node 'domNode0x6d7cb0' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/Power/v
    node 'domNode0x6d7dd0' is a TEXT_NODE and a STRING jsonType at xpath=/total/Power/u/text()
    node 'domNode0x6d7d70' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/Power/u
    node 'domNode0x6d7e90' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/Power/d/text()
    node 'domNode0x6d7e30' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/Power/d
    node 'domNode0x6d7c50' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total/Power
    node 'domNode0x6d7fb0' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldDay/v/text()
    node 'domNode0x6d7f50' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldDay/v
    node 'domNode0x6d8070' is a TEXT_NODE and a STRING jsonType at xpath=/total/YieldDay/u/text()
    node 'domNode0x6d8010' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldDay/u
    node 'domNode0x6d8130' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldDay/d/text()
    node 'domNode0x6d80d0' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldDay/d
    node 'domNode0x6d7ef0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total/YieldDay
    node 'domNode0x6d8250' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldTotal/v/text()
    node 'domNode0x6d81f0' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldTotal/v
    node 'domNode0x6d8310' is a TEXT_NODE and a STRING jsonType at xpath=/total/YieldTotal/u/text()
    node 'domNode0x6d82b0' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldTotal/u
    node 'domNode0x6d83d0' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldTotal/d/text()
    node 'domNode0x6d8370' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldTotal/d
    node 'domNode0x6d8190' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total/YieldTotal
    node 'domNode0x6d7bf0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total node 'domNode0x6d84f0' is a TEXT_NODE and a FALSE jsonType at xpath=/hints/time_sync/text()
    node 'domNode0x6d8490' is a ELEMENT_NODE and a NONE jsonType at xpath=/hints/time_sync
    node 'domNode0x6d85b0' is a TEXT_NODE and a FALSE jsonType at xpath=/hints/radio_problem/text()
    node 'domNode0x6d8550' is a ELEMENT_NODE and a NONE jsonType at xpath=/hints/radio_problem
    node 'domNode0x6d8670' is a TEXT_NODE and a FALSE jsonType at xpath=/hints/default_password/text()
    node 'domNode0x6d8610' is a ELEMENT_NODE and a NONE jsonType at xpath=/hints/default_password
    node 'domNode0x6d8430' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/hints

    $ ./gr livedata_20250914.txt
    node 'domNode0x1d9af30' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/serial/text()
    node 'domNode0x1d9aed0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/serial
    node 'domNode0x1d9afd0' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[1]/name/text()
    node 'domNode0x1d9af70' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/name
    node 'domNode0x1d9b070' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/order/text()
    node 'domNode0x1d9b010' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/order
    node 'domNode0x1d9b130' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/data_age/text()
    node 'domNode0x1d9b0d0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/data_age
    node 'domNode0x1d9b1f0' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[1]/poll_enabled/text()
    node 'domNode0x1d9b190' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/poll_enabled
    node 'domNode0x1d9b2b0' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[1]/reachable/text()
    node 'domNode0x1d9b250' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/reachable
    node 'domNode0x1d9b370' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[1]/producing/text()
    node 'domNode0x1d9b310' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/producing
    node 'domNode0x1d9b430' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/limit_relative/text()
    node 'domNode0x1d9b3d0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/limit_relative
    node 'domNode0x1d9b4f0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/limit_absolute/text()
    node 'domNode0x1d9b490' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/limit_absolute
    node 'domNode0x1d9b610' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/tx_request/text()
    node 'domNode0x1d9b5b0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/tx_request
    node 'domNode0x1d9b6d0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/tx_re_request/text()
    node 'domNode0x1d9b670' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/tx_re_request
    node 'domNode0x1d9b790' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_success/text()
    node 'domNode0x1d9b730' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_success
    node 'domNode0x1d9b850' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_fail_nothing/text()
    node 'domNode0x1d9b7f0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_fail_nothing
    node 'domNode0x1d9b910' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_fail_partial/text()
    node 'domNode0x1d9b8b0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_fail_partial
    node 'domNode0x1d9b9d0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_fail_corrupt/text()
    node 'domNode0x1d9b970' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rx_fail_corrupt
    node 'domNode0x1cc5290' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rssi/text()
    node 'domNode0x1d9ba30' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[1]/radio_stats/rssi
    node 'domNode0x1d9b550' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]/radio_stats
    node 'domNode0x1d9ae70' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[1]
    node 'domNode0x1d27d40' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/serial/text()
    node 'domNode0x1d27ce0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/serial
    node 'domNode0x1d27e00' is a TEXT_NODE and a STRING jsonType at xpath=/inverters/objectcontainer[2]/name/text()
    node 'domNode0x1d27da0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/name
    node 'domNode0x1d27ec0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/order/text()
    node 'domNode0x1d27e60' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/order
    node 'domNode0x1d27f80' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/data_age/text()
    node 'domNode0x1d27f20' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/data_age
    node 'domNode0x1d28040' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[2]/poll_enabled/text()
    node 'domNode0x1d27fe0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/poll_enabled
    node 'domNode0x1d28100' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[2]/reachable/text()
    node 'domNode0x1d280a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/reachable
    node 'domNode0x1d281c0' is a TEXT_NODE and a TRUE jsonType at xpath=/inverters/objectcontainer[2]/producing/text()
    node 'domNode0x1d28160' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/producing
    node 'domNode0x1d28280' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/limit_relative/text()
    node 'domNode0x1d28220' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/limit_relative
    node 'domNode0x1d28340' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/limit_absolute/text()
    node 'domNode0x1d282e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/limit_absolute
    node 'domNode0x1d28460' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/tx_request/text()
    node 'domNode0x1d28400' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/tx_request
    node 'domNode0x1d28520' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/tx_re_request/text()
    node 'domNode0x1d284c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/tx_re_request
    node 'domNode0x1d285e0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_success/text()
    node 'domNode0x1d28580' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_success
    node 'domNode0x1d286a0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_fail_nothing/text()
    node 'domNode0x1d28640' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_fail_nothing
    node 'domNode0x1d28760' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_fail_partial/text()
    node 'domNode0x1d28700' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_fail_partial
    node 'domNode0x1d28820' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_fail_corrupt/text()
    node 'domNode0x1d287c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rx_fail_corrupt
    node 'domNode0x1d288e0' is a TEXT_NODE and a NUMBER jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rssi/text()
    node 'domNode0x1d28880' is a ELEMENT_NODE and a NONE jsonType at xpath=/inverters/objectcontainer[2]/radio_stats/rssi
    node 'domNode0x1d283a0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]/radio_stats
    node 'domNode0x1d27c80' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/inverters/objectcontainer[2]
    node 'domNode0x1d9ae10' is a ELEMENT_NODE and a ARRAY jsonTye at xpath=/inverters
    node 'domNode0x1d28a60' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/Power/v/text()
    node 'domNode0x1d28a00' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/Power/v
    node 'domNode0x1d28b20' is a TEXT_NODE and a STRING jsonType at xpath=/total/Power/u/text()
    node 'domNode0x1d28ac0' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/Power/u
    node 'domNode0x1d28be0' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/Power/d/text()
    node 'domNode0x1d28b80' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/Power/d
    node 'domNode0x1d289a0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total/Power
    node 'domNode0x1d28d00' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldDay/v/text()
    node 'domNode0x1d28ca0' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldDay/v
    node 'domNode0x1d28dc0' is a TEXT_NODE and a STRING jsonType at xpath=/total/YieldDay/u/text()
    node 'domNode0x1d28d60' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldDay/u
    node 'domNode0x1d28e80' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldDay/d/text()
    node 'domNode0x1d28e20' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldDay/d
    node 'domNode0x1d28c40' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total/YieldDay
    node 'domNode0x1d28fa0' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldTotal/v/text()
    node 'domNode0x1d28f40' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldTotal/v
    node 'domNode0x1d29060' is a TEXT_NODE and a STRING jsonType at xpath=/total/YieldTotal/u/text()
    node 'domNode0x1d29000' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldTotal/u
    node 'domNode0x1d29120' is a TEXT_NODE and a NUMBER jsonType at xpath=/total/YieldTotal/d/text()
    node 'domNode0x1d290c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/total/YieldTotal/d
    node 'domNode0x1d28ee0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total/YieldTotal
    node 'domNode0x1d28940' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/total node 'domNode0x1d29240' is a TEXT_NODE and a FALSE jsonType at xpath=/hints/time_sync/text()
    node 'domNode0x1d291e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/hints/time_sync
    node 'domNode0x1d29300' is a TEXT_NODE and a FALSE jsonType at xpath=/hints/radio_problem/text()
    node 'domNode0x1d292a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/hints/radio_problem
    node 'domNode0x1d293c0' is a TEXT_NODE and a FALSE jsonType at xpath=/hints/default_password/text()
    node 'domNode0x1d29360' is a ELEMENT_NODE and a NONE jsonType at xpath=/hints/default_password
    node 'domNode0x1d29180' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/hints node 'domNode0x1d294e0' is a TEXT_NODE and a FALSE jsonType at xpath=/vedirect/enabled/text()
    node 'domNode0x1d29480' is a ELEMENT_NODE and a NONE jsonType at xpath=/vedirect/enabled
    node 'domNode0x1d29420' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/vedirect
    node 'domNode0x1d29600' is a TEXT_NODE and a FALSE jsonType at xpath=/huawei/enabled/text()
    node 'domNode0x1d295a0' is a ELEMENT_NODE and a NONE jsonType at xpath=/huawei/enabled
    node 'domNode0x1d29540' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/huawei
    node 'domNode0x1d29720' is a TEXT_NODE and a FALSE jsonType at xpath=/battery/enabled/text()
    node 'domNode0x1d296c0' is a ELEMENT_NODE and a NONE jsonType at xpath=/battery/enabled
    node 'domNode0x1d29660' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/battery
    node 'domNode0x1d29840' is a TEXT_NODE and a TRUE jsonType at xpath=/power_meter/enabled/text()
    node 'domNode0x1d297e0' is a ELEMENT_NODE and a NONE jsonType at xpath=/power_meter/enabled
    node 'domNode0x1dabba0' is a TEXT_NODE and a NUMBER jsonType at xpath=/power_meter/Power/v/text()
    node 'domNode0x1dabb40' is a ELEMENT_NODE and a NONE jsonType at xpath=/power_meter/Power/v
    node 'domNode0x1dabc60' is a TEXT_NODE and a STRING jsonType at xpath=/power_meter/Power/u/text()
    node 'domNode0x1dabc00' is a ELEMENT_NODE and a NONE jsonType at xpath=/power_meter/Power/u
    node 'domNode0x1dabd20' is a TEXT_NODE and a NUMBER jsonType at xpath=/power_meter/Power/d/text()
    node 'domNode0x1dabcc0' is a ELEMENT_NODE and a NONE jsonType at xpath=/power_meter/Power/d
    node 'domNode0x1dabae0' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/power_meter/Power
    node 'domNode0x1d29780' is a ELEMENT_NODE and a OBJECT jsonType at xpath=/power_meter

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From undroidwish@[email protected] to comp.lang.tcl on Wed Sep 17 18:13:17 2025
    From Newsgroup: comp.lang.tcl

    On 9/17/25 14:55, Ted Nolan <tednolan> wrote:
    In article <[email protected]>,
    Gerhard Reithofer <[email protected]> wrote:
    ...
    But I'm on raspberry pi without development environment, do you have a
    link to a installable version for aarch64?
    Example looks good - will try.

    Hmm. Given the popularity of the Pi, I feel sure there is one,
    but I'm not aware of where. Sorry. :-(

    Gerhard, maybe you'll need some LUCK on aarch64. Please study
    this Tcl'ers Wiki page for ideas: https://wiki.tcl-lang.org/page/LUCK

    BR,
    Christian
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Gerhard Reithofer@[email protected] to comp.lang.tcl on Fri Sep 19 14:38:18 2025
    From Newsgroup: comp.lang.tcl

    On Wed, 17 Sep 2025, Rich wrote:

    Gerhard Reithofer <[email protected]> wrote:
    Hello all,


    Example using tDom (note, minimalist):
    #!/usr/bin/tclsh
    package require tdom

    set fd [open [lindex $argv 0] RDONLY] fconfigure $fd -encoding
    utf-8

    set json [dom parse -json [read $fd]]

    proc walk-tree {node} {
    # depth first search
    foreach child [$node childNodes] {
    walk-tree $child
    }
    # skip the very top level owner document node
    if {$node ne [$node ownerDocument]} {
    puts "node '$node' is a [$node nodeType] and a [$node jsonType] jsonType at xpath=[$node toXPath]"
    }
    }

    walk-tree $json

    Amazing!!!
    I have reduced it to a 5-line version by selection the relevant node
    type and x-path also creates valid tcl keys by adding the indexes for
    array access ;-)

    Thanks,
    Gerhard
    --
    mailto:[email protected]
    http://www.tech-edv.co.at
    -- new email address --
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Gerhard Reithofer@[email protected] to comp.lang.tcl on Fri Sep 19 14:57:35 2025
    From Newsgroup: comp.lang.tcl

    On Wed, 17 Sep 2025, undroidwish wrote:

    On 9/17/25 14:55, Ted Nolan <tednolan> wrote:
    In article <[email protected]>,
    Gerhard Reithofer <[email protected]> wrote:
    ...
    But I'm on raspberry pi without development environment, do you have a link to a installable version for aarch64?
    Example looks good - will try.

    Hmm. Given the popularity of the Pi, I feel sure there is one,
    but I'm not aware of where. Sorry. :-(

    Gerhard, maybe you'll need some LUCK on aarch64. Please study
    this Tcl'ers Wiki page for ideas: https://wiki.tcl-lang.org/page/LUCK

    Ja, ja ... alles bereits erledigt ;-) :-) :-) :-) :-)

    BTW: I have a request for a possible small project and it should
    also run on iMac.
    Is there anything new regarding the newer ARM platforms on iMac?
    --
    http://www.tech-edv.co.at
    -- new email address --
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From undroidwish@[email protected] to comp.lang.tcl on Fri Sep 19 15:22:00 2025
    From Newsgroup: comp.lang.tcl

    On 9/19/25 14:57, Gerhard Reithofer wrote:

    ...
    BTW: I have a request for a possible small project and it should
    also run on iMac.
    Is there anything new regarding the newer ARM platforms on iMac?

    Oh Gerhard, won't you buy me a MacBook M4 ... ;-)

    Have a sunny week end,
    Christian

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Rich@[email protected] to comp.lang.tcl on Fri Sep 19 17:22:02 2025
    From Newsgroup: comp.lang.tcl

    Gerhard Reithofer <[email protected]> wrote:
    On Wed, 17 Sep 2025, Rich wrote:

    Gerhard Reithofer <[email protected]> wrote:
    Hello all,


    Example using tDom (note, minimalist):
    #!/usr/bin/tclsh
    package require tdom

    set fd [open [lindex $argv 0] RDONLY] fconfigure $fd -encoding
    utf-8

    set json [dom parse -json [read $fd]]

    proc walk-tree {node} {
    # depth first search
    foreach child [$node childNodes] {
    walk-tree $child
    }
    # skip the very top level owner document node
    if {$node ne [$node ownerDocument]} {
    puts "node '$node' is a [$node nodeType] and a [$node jsonType] jsonType at xpath=[$node toXPath]"
    }
    }

    walk-tree $json

    Amazing!!!
    I have reduced it to a 5-line version by selection the relevant node
    type and x-path also creates valid tcl keys by adding the indexes for
    array access ;-)

    Yep, and, with tDom's xpath query (the "selectNodes" method) you can
    use those xpath expressions to extract data out of leaves of interest
    without having to do any 'tree walking' (once you know the relevant
    xpath, that is....).

    selectNodes, and the xpath string() operator, make a very useful
    precision data extractor.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Gerhard Reithofer@[email protected] to comp.lang.tcl on Fri Sep 19 20:15:41 2025
    From Newsgroup: comp.lang.tcl

    On Fri, 19 Sep 2025, undroidwish wrote:

    On 9/19/25 14:57, Gerhard Reithofer wrote:

    ... BTW: I have a request for a possible small project and it should
    also run on iMac.
    Is there anything new regarding the newer ARM platforms on iMac?

    Oh Gerhard, won't you buy me a MacBook M4 ... ;-)

    ...

    I will ask for one, but I got my iMac for free because Apple dropped the
    macOS for this machine and now it's a wonderful Linux machine for more
    almost 10 years :-(
    --
    http://www.tech-edv.co.at
    -- new email address --
    --- Synchronet 3.21a-Linux NewsLink 1.2