Reading multiple identical nodes in an XML file

Jim Ault jimaultwins at yahoo.com
Mon Oct 17 01:30:25 CDT 2011


This approach takes about
11 ticks to do 20,000 lines of XML
and creates a single tab-delim table
--
but first fix the malformed tag
> <age>12<age>
<age>12</age>

-----------------
on parseXML
    put empty into MT
    put tab into TB
    put "^" into TB --remove after debugging

    put fld incmgTxtFld into dataBlock
    replace CR with MT in dataBlock  --purge all
    put "orphanage, small-child, name, age" into tree
    replace space with MT in tree

    replace (item 1 of tree) with CR in dataBlock

    --isolate each small-child & trunc data line
    replace ("</" & item 2 of tree & ">") with CR in dataBlock

    --make sure each line a good data line
    get ("</" & item 2 of tree & ">")
    filter dataBlock with ("<" & item 2 of tree & space & "*")

    --isolate data & build a table
    repeat for each line LNN in dataBlock
         put LNN into tblRow

       repeat for each item ITM in (item 3 to -1 of tree)
            replace "</" & ITM & ">"  with MT in tblRow
            replace "<" & ITM & ">"  with TB in tblRow
       end repeat
       replace "=" with CR in tblRow
       put line 2 of tblRow & CR after newDataTable
    end repeat
    replace ">" with MT in newDataTable
    put newDataTable into msg

end parseXML
-----------------

LC chunking is very fast.
Hope this helps

Jim Ault

On Oct 17, 2011, at 12:45 AM, Sivakatirswami wrote:

> I am an XML newbie:
>
> if you want to extract data from a series of  identical nodes in a  
> XML file, how do you set up the repeat function?
>
>
>
> <orphanage>
>
> <small-child id=1>
> <name>Rajan</name>
> <age>12<age>
> </small-child>
>
> <small-child id=2>
> <name>John</name>
> <age>8<age>
> </small-child>
>
> <small-child id=3>
> <name>Jose</name>
> <age>9<age>
> </small-child>
>
> </orphanage>
>
>
> -- 
> Om Shanti
> Sivakatirswami
>


More information about the use-livecode mailing list