开发者

Sencha Touch XML

I have a problem with senchatouch and i have to decode this XML. i can't find a solution to get the Product-id attribute, ProductMime urls and the other collections.

 <ProductCollection>
<Product id="5">
<vendorProductId>123</vendorProductId>
<ean>0</ean>
<stock>no</stock>
<name>test</name><nameShort>
</nameShort>
<description>description</description>
<descriptionShort>descriptionShort</descriptionShort>
<deliveryScope></deliveryScope>
<price>89</price>
<priceTax>0</priceTax>
<priceGross>89</priceGross>
<productCurrency>0</productCurrency>
<ProductMimeCollection>
  <ProductMime url="1.JPG" mimeType=""/>
  <ProductMime url="1.JPG" mimeType=""/>
  <ProductMime url="1.JPG" mimeType=""/>
  <ProductMime url="1.JPG" mimeType=""/>
  <ProductMime url="1" mimeType=""/>
</ProductMimeCollection>
<ProductReviewCollection rating="5" reviews="1">
  <ProductReview id="1">
  <active>1</active>
  <customerId>2</customerId>
  <dateCreated/>
  <productId>5</productId>
  <review>Reviewtext</review>
  <shopId/>
  <userEmail></userEmail>
  <userName></userName>
  <userRating>5</userRating>
  </ProductReview>
</ProductReviewCollection>
<CrossSellingCollection>
    <Product id="13"></Product>
</CrossSellingCollection>
</Product>

</ProductCollection>

can you show me how to fetch the attributes and elements,... this was my way which did not work:

Ext.regModel('Products', {
    fields: ['vendorProductId', 'ean', 'stock', {name: 'ProductMime', convert: (function(){
            var reader2 = new Ext.data.XmlReader({
                record: '> url',
                fields: [
                    {name: 'url', mapping: '@url'}
                ]
            });
            return function(v, n) {
                return reader2.r开发者_高级运维eadRecords(n).records;
            };
        });}
]
});

var store = new Ext.data.Store({
    model: 'Products',
    autoLoad:true,
    proxy: {
        type: 'ajax',
        url : 'ajax/topten.xml',
        reader: {
    type  : 'xml',
    root  : 'ProductCollection',
    record: 'Product'
    }
    }

Please help me

Thanks for your Help!!


I don't know what you mean by fetch the attributes, so instead I'll show you how to put them into e. g. DataView:

<!DOCTYPE html>
<html>
    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Stackoverflow Example</title>
        <script src="../sencha-touch-debug.js" type="text/javascript">
        </script>
        <link href="../resources/css/sencha-touch.css" rel="stylesheet" type="text/css">
        <script type="text/javascript">
            new Ext.Application({
                name: 'stackoverflow',
                launch: function(){
                    Ext.regModel('Products', {
                        fields: ['vendorProductId', 'ean', 'stock', {
                            name: 'ProductMime', 
                            convert: (function(){
                                var reader2 = new Ext.data.XmlReader({
                                    record: '> url',
                                    fields: [
                                    {
                                        name: 'url', 
                                        mapping: '@url'
                                    }]
                                });
                                return function(v, n) {
                                    return reader2.readRecords(n).records;
                                };
                            })
                        }]
                    });

                    this.stores.products = new Ext.data.Store({
                        model: 'Products',
                        autoLoad:true,
                        proxy: {
                            type: 'ajax',
                            url : 'data.xml',
                            reader: {
                                type  : 'xml',
                                root  : 'ProductCollection',
                                record: 'Product'
                            }
                        }
                    });
                var productTpl = new Ext.XTemplate(
                    '<tpl for=".">',
                        '<div class="product-wrap" id="{vendorProductId}">',
                        '<div class="product-ean">{ean}</div>',
                        '<div class="product-stock">{stock}</div>',
                    '</tpl>'
                );    
                new Ext.Panel({
                    fullscreen: true,
                    items: new Ext.DataView({
                        store: this.stores.products,
                        tpl: productTpl,
                        itemSelector: 'product-selected'
                        //other config goes here
                    })
                });
            }
        });        
        </script>
    </head>
    <body>
    </body>
</html>

Hope this can help you :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜