Dumb XML library question

Dave Cragg dave.cragg at lacscentre.co.uk
Tue Aug 5 10:39:06 EDT 2014


On 5 Aug 2014, at 15:00, jbv at souslelogo.com wrote:

> Hi list
> 
> When I have a tree such as the following one :
> <person>
>  <aliases>
>    <name>name1</name>
>    <name>name2</name>
>    <name>name3</name>
>  </aliases>
> </person>
> 
> Is there a simple way to loop through the children of <aliases>
> and get their respective contents ?
> Please correct me is I'm wrong, but it looks like all xml functions
> require the path to the child, which doesn't work in this case for
> the path person/aliases/name always leads to the first child...
> 
> I found a workaround by sucessively deleting the 1st child and
> then getting the firstchildcontent, but that means more lines of
> code and destruction of parts of the tree...


There may be a better way, but using revXMLChildNames allows you get the child names with the index appended (e.g. name[1], name[2], etc.)

 put field 1 into tData //source of xml text
 put revXMLCreateTree(tData,true,true,false) into tID
 put revXMLChildNames(tID, "person/aliases/", cr, "name" ,true) into tNameNodes
 put "" into tOut
 repeat for each line tNodeName in tNameNodes
   put "person/aliases/" & tNodeName into tNode
   put revXMLNodeContents(tID, tNode)  & cr after tOut
 end repeat
 put tOut into field 2

Cheers
Dave Cragg



More information about the use-livecode mailing list