如何从DataSchema XML迭代数据输出
How to iterate data output from DataSchema XML
YUI().use("datatype-xml", "dataschema-xml", function(Y)
{
var dataIn = Y.DataType.XML.parse(xmlData);
schema = {
resultListLocator: "song",
resultFields: [{key:"title"}, {key:"artist"}, {key:"rank"}]
},
dataOut = Y.DataSchema.XML.apply(schema, dataIn);
console.log(dataOut); <-- Display list of object
console.log(dataOut.length); <--- Undefined
});
当我只记录dataOut(对象列表)时,一切似乎都是正确的。但是当我尝试遍历这个列表时,长度是未定义的。
那么我如何在应用DataSchema.XML后迭代列表呢?
DataSchema的apply
方法返回具有results
和meta
属性的对象。results
属性是一个可以迭代的数组。下面是一个例子:
YUI().use("datatype-xml", "dataschema-xml", function(Y) {
var data_in = Y.DataType.XML.parse('<Response><Session>542235629</Session><Tracks start="1" count="10" total="98" errorCount="0" defaultSort="popularity+" description="Top 100 Tracks" name="Top 100 Tracks" ><Track id="59672468" rating="-1" title="I Kissed A Girl"><Artist id="30326214" rating="-1">Katy Perry</Artist><ItemInfo><ChartPosition last="26" this="1"/></ItemInfo></Track><Track id="47973564" rating="-1" title="Shake It"><Artist id="45575683" rating="-1">Metro Station</Artist><ItemInfo><ChartPosition last="27" this="2"/></ItemInfo></Track><Track id="52207363" rating="-1" title="Bleeding Love"><Artist id="37956508" rating="-1">Leona Lewis</Artist><ItemInfo><ChartPosition last="28" this="3"/></ItemInfo></Track></Tracks></Response>'),
schema = {
metaFields: {
session: "//Session", total:"//Tracks/@total"
},
resultListLocator: "//Track",
resultFields: [
{key:"song", locator:"@title"},
{key:"artist", locator:"Artist"},
{key:"rank", locator:"ItemInfo/ChartPosition/@this"}
]
},
data_out = Y.DataSchema.XML.apply(schema, data_in);
Y.Array.each(data_out.results, function (data) {
// ...
})
});
相关文章:
- 我可以按特定的顺序迭代一个标签中的不同数据标签吗
- 使用JavaScript对JSON对象进行迭代无法处理此数据
- 在不同数据选项之间循环迭代对象
- jQuery:仅显示新的JSON数据,并使用自己的段落标签进行迭代
- 如何迭代无序的JSON数据并排序为数组
- 如何在数据数组的每次迭代中创建一个内容为“i+1”的新 HTML 元素
- 如何使用 D3 javascript 迭代 JSON 文件中的数据
- For 循环不迭代,输出的数据不超过第一个任务
- 从数据绑定属性迭代键值对
- 将数据推送到阵列,然后迭代
- 递归迭代没有已知长度和深度的 JSON 数据
- Knockout foreach 循环迭代相同的数据元素
- 如何使用 D3.js 在带有按钮的一个区域中创建/显示具有相同数据的图表的多次迭代
- jQuery对输出的Ci/Sql数据进行迭代
- JavaScriptES6中对大数据进行异步迭代的习惯用法
- Cesiumjs:如何从GeoJsonDataSource中迭代数据
- ng重复仅显示第一迭代数据
- 使用angularjs在一次请求中发布迭代数据
- AngularJS:自定义迭代/数据转换和分组…当简单的ng-repeat只是won'
- 使用字符串替换迭代数据集