1. #1
    Sencha Premium Member AndrewKolas's Avatar
    Join Date
    Feb 2013
    Posts
    2
    Vote Rating
    0
    AndrewKolas is on a distinguished road

      0  

    Default Unanswered: XML reader to read sub elements

    Unanswered: XML reader to read sub elements


    I need to read XML that I'm receiving through a proxy that contains sub elements.

    Sample xml response:

    Code:
    <records>
      <record>
        <id>239</id>
        <name>Media X</name>
        <state milestone="EFP">
          <entryDate>2013-03-08T12:13:52Z</entryDate>
          <entrySize>10</entrySize>
        </state>
        <state milestone="LOAD">
          <entryDate>2013-03-08T12:16:51Z</entryDate>
          <entrySize>11</entrySize>
        </state>
      </record>
    </records>
    
    
    
    My proxy looks like this:
    Code:
    proxy: {
            type: 'rest',
            api: {
                read: 'Routing/DataService/pipeline/'
            },
            reader: {
                type: 'xml',
                root: 'records',
                record: 'record',
                model: 'AM.model.Record'
            }
        }
    Finally, my model's fields are defined:

    Code:
         
        fields: [
    
    
            { name: 'id', type: 'int', hidden: true, editable: false },        
            { name: 'mediaName', type: 'string' },
            {
                name: 'state', hidden: true, convert: function (value, record) {
                    alert(value);
                }
            }
        ]
    I'm not worried about having the states mapped to a particular model, though obviously that would be preferred, but at least they should be put into a javascript object. Preferably, based on my example XML,

    Code:
    state: [
        {
          milestone: "EFP",
          entryDate: ...,
          entrySize: ...,
        },
        {
          milestone: "LOAD",
          entryDate: ...,
          entrySize: ...,
        }
    ]
    As it stands, Ext.data.reader.Xml.getNodeValue returns null.

    Is there any deep reader I can use for this, or am I on my own?

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    36,824
    Answers
    3470
    Vote Rating
    836
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    You are using the convert method and not returning anything therefore the data value will be undefined. You can use the mapping config to map to a node. You can also use associations to have the states array be created as a hasMany association.
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

Thread Participants: 1

Tags for this Thread