0

我有以下XML結構,我想動態獲取標籤,話題,子話題和屏幕的基礎上字段標籤值;這可能嗎? Plz讓我知道適當的解決方案。如何從XML存儲特定節點的值在煎茶觸摸

XML結構:

<?xml version="1.0" encoding="utf-8"?> 
<Settings> 
<ABC TYPE="Tab"> 
<Trans TYPE="Topic"> 
    <Rpt TYPE="SubTopic"> 
    <File TYPE="Screen"> 
     <Fields> 
     <Tin>10</Tin> 
     <Pin>8</Pin> 
     </Fields> 
    </File> 
    </Rpt> 
</Trans> 
</ABC> 
<XYZ TYPE="Tab"> 
<Trans TYPE="Topic"> 
    <Rpt TYPE="SubTopic"> 
    <File TYPE="Screen"> 
     <Fields> 
     <Tin>10</Tin> 
     <Pin>8</Pin> 
     </Fields> 
    </File> 
    </Rpt> 
</Trans> 
    </XYZ> 
</Settings> 

模型結構:

Ext.define('MyApp.model.ScreenValidation', { 
    extend: 'Ext.data.Model', 

    config: { 
     fields: [ 
      { 
       name: 'Tin', 
       type: 'string' 
      }, 
      { 
       name: 'Pin', 
       type: 'string' 
      } 
     ] 
    } 
}); 

XMLStore Strucuter:

Ext.define('MyApp.store.ScreenValidation', { 
    extend: 'Ext.data.Store', 

    requires: [ 
     'MyApp.model.ScreenValidation' 
    ], 

    config: { 
     autoLoad: true, 
     model: 'MyApp.model.ScreenValidation', 
     storeId: 'ScreenValidation', 
     proxy: { 
      type: 'ajax', 
      url: 'ScreenValidation.xml', 
      reader: { 
       type: 'xml', 
       record: 'Fields' 
      } 
     } 
    } 
}); 

任何幫助表示讚賞!

回答

0

如果您有權修改xml結構,我建議您這樣做。

<?xml version="1.0" encoding="utf-8"?> 
<Settings> 
    <Setting> 
    <type>Tab</type> 
    <transType>Topic</transType> 
    <rptType>SubTopic</rptType> 
    <fileType>Screen</fileType> 
    <Fields> 
     <Tin>10</Tin> 
     <Pin>8</Pin> 
     </Fields> 
    </File> 
    </Setting> 

    ....ETC 
</Settings 

如果您沒有訪問API,這樣就可以改變我想你會被卡住的格式之一:

1:掌握標準的Ajax請求的XML響應和或者手動解析你的xml結果,或者使用庫,然後手動填充MyApp.model.ScreenValidation對象。

2:延長/覆蓋Ext.data.reader.Xml類,並使其解析出到你的模型,你想要的信息。

我希望你能夠訪問API,因爲後者的解決方案聽起來都很糟糕。此外,我從來沒有試圖解決這樣的問題,所以我可能忽視了一個更簡單的解決方案。

我期待聽到你如何得到這個工作。你好,布拉德