首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XmlStore查询XPath

使用XmlStore查询XPath
EN

Stack Overflow用户
提问于 2013-10-06 13:38:41
回答 2查看 696关注 0票数 0

我有一个dojox.data.XmlStore,我想使用XPath查询xml存储。是否有办法这样做?下面的示例表示属性的查询,但我希望使用item元素提供的XPath查询。

代码语言:javascript
复制
var store = new dojox.data.XmlStore({url: "books.xml", rootItem: "book"});
var gotBooks = function(items, request){
  for(var i = 0; i < items.length; i++){
    var item = items[i];
    console.log("Located book: " + store.getValue(item, "title");
  }
}
var request = store.fetch({query: {isbn:"A9B57*"}, onComplete: gotBooks});

例如,如果我有一个dojo dijit.Tree元素,它支持onClick事件,我希望能够获取所选元素的内容。item元素有一个名为" query“的字段,表示项目本身的XPath查询。如何使用这个XPath查询从存储中收集数据?

代码语言:javascript
复制
var tree = new Tree({
    model: myModel,
    onClick: function(item){
        //the item parameter has a field called "query" that represent the XPath query for the item itself.
    }
});

如果我使用来自XmlItem的“查询”字段,则不会提供任何结果。var request = store.fetch({query: item.q , onComplete: gotBooks});

EN

回答 2

Stack Overflow用户

发布于 2013-10-06 15:43:45

在查询中尝试使用regExp而不是"*“,例如:

代码语言:javascript
复制
var request = store.fetch({query: {isbn:new RegExp('A9B57','i')}, onComplete: gotBooks});

如果您需要查询所有,只需使用:

代码语言:javascript
复制
var request = store.fetch({query: {}, onComplete: gotBooks});
票数 0
EN

Stack Overflow用户

发布于 2013-10-07 11:45:22

要从XmlStore提取数据,我们可以使用XmlItem提供的归档查询,如下面的示例所示。

答案在dijit/tree/ForestStoreModel#getChildren()中的Dojo源代码中找到。

代码语言:javascript
复制
store.fetch({
          //for the query element the item.query field can be used in this way
           query: item.query, 
           onComplete: onComplete,
           onError: onError
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19209486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档