Given the following XML in Flash:
var xml:XML = <root/>;
xml.bar.foo.baz = "baz";
You get an XML structure like so:
<root>
<bar>
<foo>
<baz>
baz
</baz>
</foo>
</bar>
</root>
In JS, this compiles to the following:
var /** @type {XML} */ xml = new XML( '<root/>');
xml.child('bar').child('foo').setChild('baz', "baz");
.child() returns an empty XMLList
.setChild() tries to add a child to that empty list and does not create the
structure.
I’m not sure how to best solve this problem.
One idea would be to add a new function called getChild() which would return an
existing element if it exists and create a new one if not. Then we could have
the compiler rewrite the output to:
xml.getChild('bar').getChild('foo').setChild('baz', "baz");
I’d prefer to try and figure out how to have setChild walk up the reference
tree and create the correct elements automatically. I’m having trouble figuring
out how to do that though.
Harbs