If it was up to me, I would redo the XML to be a bit more concise and more "standard".
<layers>
   <layer name="LayerOne">
       <assets
<asset width=20 height=10 xPos=50 yPos=30 name="somename0.bmp" /> <asset width=20 height=10 xPos=50 yPos=30 name="somename1.bmp"/>
      </assets>
   </layer>
   <layer name="LayerTwo">
       <assets
<asset width=20 height=10 xPos=50 yPos=30 name="somename2.bmp" />
      </assets>
   </layer>
</layers>

This will parse better. It is probably easier to create.

You can parse this into a Layers Object which is a collection (array) of Layer objects. The Layer Object has a name (LayerOne) and a list of Asset Objects as propertie.s The Asset Object has properties which correspond to the XML attributes(width, height, etc.).

The total layers is redundant since it is only the length of the Layers Object array of Layers. function getLayerCount(){return layersList.length;}


If you are stuck with your existing XMl, you can still use the same object structure once you have parsed it but will have a more complicated parse since you have these LayerOne, LayerTwo trees which will have to be recognized in your parse. With XPath, this will be a PITA.

If you write your own parse, you can probably make some assumptions about the tree structure which will avoid having to write a lot of code to deal with LayerOne, etc.

By dynamic, we mean that you just store the whole XML string and parse it each time you want some information. If you can not fix your XML structure, dynamic parsing will likely be too expensive and you should parse the XML once into an object hierarchy and work with the objects.

Ron



Sajid Saiyed wrote:
Hi,
I have an XML like this:

<root>
    <totalLayers>
        <number>5</number>
    </totalLayers>
    <LayerOne>
        <asset>
         <name>somename0.bmp</name>
        <width>20</width>
        <height>10</height>
        <xPos>50</xPos>
        <yPos>30</yPos>
        </asset>
        <asset>
         <name>somename1.bmp</name>
        <width>20</width>
        <height>10</height>
        <xPos>50</xPos>
        <yPos>30</yPos>
        </asset>
    </LayerOne>
    <Layertwo>
        <asset>
         <name>somename2.bmp</name>
        <width>20</width>
        <height>10</height>
        <xPos>50</xPos>
        <yPos>30</yPos>
        </asset>
    </LayerTwo>
</root>

I want to use XPATH or something similar to create dynamic
arrays/string and store values respectivele like this:

String:
totalLayers = "5";

LayerOne and LayerTwo will be a multidimentional array"

LayerOne[[asset[name,width,height,xpos,ypos]][asset[name,width,height,xpos,ypos]]...] LayerTwo[[asset[name,width,height,xpos,ypos]][asset[name,width,height,xpos,ypos]]...]
etc...

Any hint or suggestion...?
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com


_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to