我有一个dojox.data.XmlStore,我想使用XPath查询xml存储。是否有办法这样做?下面的示例表示属性的查询,但我希望使用item元素提供的XPath查询。
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查询从存储中收集数据?
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});。
发布于 2013-10-06 15:43:45
在查询中尝试使用regExp而不是"*“,例如:
var request = store.fetch({query: {isbn:new RegExp('A9B57','i')}, onComplete: gotBooks});如果您需要查询所有,只需使用:
var request = store.fetch({query: {}, onComplete: gotBooks});发布于 2013-10-07 11:45:22
要从XmlStore提取数据,我们可以使用XmlItem提供的归档查询,如下面的示例所示。
答案在dijit/tree/ForestStoreModel#getChildren()中的Dojo源代码中找到。
store.fetch({
//for the query element the item.query field can be used in this way
query: item.query,
onComplete: onComplete,
onError: onError
});https://stackoverflow.com/questions/19209486
复制相似问题