Dojo:如何将dojox.data.XmlStore中的所有项目列出到控制台?

时间:2011-12-16 22:28:34

标签: dojo xml-parsing

我认为这是一个简单回答的问题......我只想循环浏览XmlStore中的项目并打印出每个项目......

XML:(houses.xml)

<test>
  <home>
    <name>Perris, CA</name>
    <addr>123 Wilson Ave</home>
  </home>
  <home>
    <name>Palmdale, CA</name>
    <addr>345 Terrace Ave</addr>
  </home>
</test>

在jQuery中,代码如下所示:

$.get("houses.xml", function(xml){
    $(xml).find('marker').each(function(){
        var name = $(this).find('name').text();
        var addr = $(this).find('addr').text();
        $("<div>" + name + " - " + addr + "</div><br>").appendTo("#listDiv");
    });
});

我想保持dojo的相关性,所以它必须至少这么简单......

到目前为止:

dojo.require("dojox.data.XmlStore");
var store = new dojox.data.XmlStore({url: "houses.xml", rootItem: "marker"});

我找不到任何循环遍历XmlStore的引用......任何帮助都将不胜感激。

谢谢 - 奈杰尔

1 个答案:

答案 0 :(得分:2)

它应该通过标准dojo.data.api.Read。来自livedocs的示例:

var store = new dojox.data.XmlStore({url: "books.xml", rootItem: "book"});
var gotBooks = function(items, request){
    dojo.forEach(items, function(item) {
        console.log("Located book: " + store.getValue(item, "title"));
    })
}
var request = store.fetch({query: {isbn:"a9b57*"}, queryOptions: {ignoreCase: true}, onComplete: gotBooks});

onComplete回调会为您提供商店中所有商品的数组

每个项目都会返回

onItem回调

请注意,如果调用onItem,将跳过onComplete。您可以使用OR或其他,而不是两者用于相同的提取。