2010-07-05 24 views
0

我是用於GUI開發的ExtJS。我正在使用XML Store從服務器檢索數據。從EXT中的XML Store中獲取記錄值js

我的XML看起來像這樣。

<meta> 
<entry>x</entry> 
<entry>Y</entry> 
</meta> 
<data> 
    <value>100</value> 
    <value>500</value> 
</data> 

其中X = 100,Y = 500

如何取回使用XMLStore從這個數據和價值?

+0

你確定這是你想要的XML結構? 元數據和數據之間的關聯是片狀的... 它看起來有多個數據記錄嗎? (如果沒有多個條目,則對數據存儲的需求是有疑問的) – ob1 2010-07-05 07:59:01

+0

我實際上是從其他工具獲取XML數據。我無法更改XML格式。字段「入口」和字段「值」的數量也是固定的。它們的數量總是相等的。 – Anandan 2010-07-05 08:30:51

+0

那麼爲什麼你需要它在數據存儲? – ob1 2010-07-05 08:39:18

回答

1

由於XML結構並不適合XML Store/Reader的期望,我建議您將XML自己解析爲更標準的格式,然後將數據加載到JsonStore中。

解析代碼:(寫了我的頭頂部,所以可能需要一些調整...)

var data = []; 
var q = Ext.DomQuery; 
var entries = q.select('meta > entry', theXML); 
var values = q.select('data > value', theXML); 
for (var i = 0; i < entries.length; ++i) { 
    var recordData = { 
     entry: entries[i].firstChild.nodeValue, 
     value: values[i].firstChild.nodeValue 
    } 
    data.push(recordData); 
} 

希望這將是對你有用...

+0

感謝您的回覆。 「theXML」是指XML文件的位置嗎?就我而言,它是通過REST API導出的。是否可以在此代碼中使用URI而不是XML文件路徑? – Anandan 2010-07-05 11:58:05

+0

「theXML」是XML DOM文檔(或文檔根節點對象)。您可以通過對REST API URL進行AJAX調用,並在成功回調 – ob1 2010-07-05 12:27:52

+0

上訪問* response.responseXML *,這對我很有用。謝謝 :) – Anandan 2010-07-05 13:00:09