[英]Turning this XML into JSON Jquery
所以我有Winamp的XML
<dict>
<key>Track ID</key><integer>0</integer>
<key>Name</key><string>American Idol 2013</string>
<key>Artist</key><string>Amber Holcomb</string>
<key>Album Artist</key><string>Amber Holcomb</string>
<key>Album</key><string>Unknown Album</string>
<key>Kind</key><string>MPEG audio file</string>
<key>Size</key><integer>3645</integer>
<key>Total Time</key><integer>233000</integer>
<key>Date Modified</key><date>Thu Mar 14 12:11:12 2013</date>
<key>Date Added</key><date>Thu Apr 04 16:10:15 2013</date>
<key>Bitrate</key><integer>128</integer>
<key>Location</key><string>file://localhost/Z:%5Canthony%5CMusic%5CiTunes%5CiTunes%20Media%5CMusic%5CUnknown%20Artist%5CUnknown%20Album%5CAmber%20Holcomb%20-%20A%20Moment%20Like%20This%20-%20Studio%20Version%20-%20American%20Idol%202013.mp3</string>
<key>File Folder Count</key><integer>-1</integer>
<key>Library Folder Count</key><integer>-1</integer>
</dict>
我想把它變成一個JsonArray
var myarray = {"TrackID":0, "Name":"American IDol 2013"...};
我找到了如何遍歷每個標簽的方法,但是我似乎不知道該怎么做。 我當時正在考慮創建一個預定義的Json數組或某個{"TrackID": "", "Name":""}
,然后在JSON完成后將其推入主JSON中(如果我不解釋,抱歉正確)。
有沒有一種方法可以使所有鍵組成一個數組,然后再與其余鍵組成另一個數組,然后將它們合並為JSON數組? 我真的可以使用一些建議。
謝謝大家的幫助。
我只是回答了我自己的問題,我想...
var key1 = "keyname";
var val1 = "value";
var myarray = {};
myarray[key1] = val1;
因此,這里是xml: http : //honciano.com/kayokee/ci/uploads/xmlbackup2.xml
這是我用來創建Json Array的代碼。 我不知道這是否是正確的方法,但是我知道了它能起作用。 我遇到的問題是從“ KEY”標簽獲取值並在“ KEY”標簽后獲取值,但不是“ KEY”的標簽是“ STRING”或“ INTEGER”。
這就是我創造的...
$.ajax({
url: "<? echo base_url().'uploads/songlist.xml';?>",
dataType: 'HTML',
success: function(data){
var myarray ={"track":[]};
var key1 = "";
var val1 = "";
var arrayContainer = {};
var myCount = 0;
$(data).find("dict").children("dict").children("dict").each(function(){
$(this).children().each(function(i, e){
var nodeKey=(this).nodeName;
if(nodeKey=="KEY"){
key1 = $(this).text();
} else {
val1 = $(this).text();
arrayContainer[key1] = val1;
myCount++;
//console.log("key1:"+key1+" - val1:"+val1+" - myCount:"+myCount);
}
if(myCount==14){
myarray.track.push(arrayContainer);
arrayContainer={};
myCount=0;
//console.log("cutoff new line");
}
});
});
$.each(myarray.track, function(i, obj){
$.each(obj, function(e, val){
console.log("e:"+e+" - val:"+val);
});
});
}
})
它完全可以正常工作,並且給了我我想要的東西。 謝謝大家!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.