[1] tak iterujesz po atrybutach, pokombinuj
for a1=0 to a1>l_root.attributes.length-1
print using "%d : %s == %s\n",a1,l_root.attributes.item(a1).name,l_root.attributes.item(a1).value
next a1
[2] kombinuj - jak już złapiesz noda to iteruj po jego dzieciach
a jak w założeniu dzieci mają dzieci to dołóż dodatkową iterację
np. coś takiego
...
l_cn=l_bn.item(b1).childnodes
c2=l_cn.length-1
for c1=0 to c1>c2
select case lcase(l_cn.item(c1).nodename)
case "tag_z_tagami":
l_dn=l_cn.item(c1).childnodes: d2=l_dn.length-1
for d1=0 to d1>d2
select case lcase(l_dn.item(d1).nodename)
case "pole","inne_pole","kolejne_inne_pole"
..... costam=l_dn.item(d1).text
next d1
...
next c1
...
są bardziej eleganckie rozwiązania ale wiesz na bezrybiu ...