Hi Laurent, > >> : (car Cells-References) > >> -> (gnm:Cell ((Row . "0") (Col . "0") (ValueType . "60")) "Ticker") > > > > cannot be a proper XML result, because we have never a list like > > (gnm:Cell ...) in the CAR. > > > > Then we have a problem:
No problem at all :) It is just that (car Cells-References) came unexpected to me, because if 'Cells-References' holds an XML structure, then its CAR cannot be a list. It is always (<tag> <asoq> . <body>). > <gnm:Cells> > <gnm:Cell Row="0" Col="0" ValueType="60">Ticker</gnm:Cell> > <gnm:Cell Row="0" Col="1" ValueType="60">truc</gnm:Cell> > </gnm:Cells> > > this is (part of) XML generated by gnumeric (see attached file) and read with: This is fine. > resulting in this: > > (gnm:Cells > NIL > (gnm:Cell ((Row . "0") (Col . "0") (ValueType . "60")) "Ticker") > (gnm:Cell ((Row . "0") (Col . "1") (ValueType . "60")) "truc")) Right. So this structure can be processed with normal list functions. : (mapcar cddr (cddr X)) -> (("Ticker") ("truc")) I would not overestimate the importance of 'attr' and 'body'. In fact, I use them rather seldom. Most of the time I'm iterating sub-structures like above. ☺/ A!ex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe