我知道有许多类似的问题(花了2-3天时间寻找解决方案),但大多数问题都引用了库,如xml2json和json2xml,这不是我想要的.
因此,问题是:我想从XML中读取数据,并使用纯 javascript 将其保存到JSON对象中,而不是使用jQuery,而不是库,只使用纯javascript。谢谢你的帮助!
( 0) xml
<ipod>
<playlist>
<name>All</name>
<contents>
<song>
<title>Miley_Cyrus_-_We_Can't_Stop</title>
</song>
<song>
<title>Miley_Cyrus_-_Wrecking Ball</title>
</song>
</contents>
</playlist>
</ipod>1) javascript //有错误
var fileData =
{
"title":"non"
};
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET", '1.xml',false);
xmlhttp.send();
xml=xmlhttp.responseXML;
for (var index=0; index<2; index++)
{
fileData.title[index]=xml.getElementsByTagName("title")[index].childNodes[0].nodeValue;
console.log(fileData.title[index]);
}
//output:
//n
//o2) jQuery //无错误
var fileData =
{
"title":"non"
};
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET", '1.xml',false);
xmlhttp.send();
xml=xmlhttp.responseXML;
fileData.artist = $(xml).find('artist');
for (var index=0; index<3; index++)
{
fileData.url[index]=fileData.url[index].textContent;
console.log(fileData.title[index]);
}
//output:
//Miley_Cyrus_-_We_Can't_Stop
//Miley_Cyrus_-_Wrecking Ball发布于 2013-10-21 01:36:59
如果您不将fileData.title初始化为字符串,而是初始化为对象,这将与您的本地版本一起使用。变化
"title":"non" to "title":{}发布于 2013-10-21 01:03:42
如果要解析xml,只需使用正则表达式:
var titles = xml.match(/<title>([^<]*)<\/title>/g).map(function(x) { return x.substring(7,x.length-8); })https://stackoverflow.com/questions/19484727
复制相似问题