转换为 JSON 的 XML 节点会出错
xml node converted to json gives an error
我知道有很多类似的问题(花了2-3天寻找解决方案) 但是他们中的大多数都引用了XML2json和Json2XML等库。这不是我想要的...
所以问题来了:我想从XML读取并将其保存到JSON对象,使用纯javascript,而不是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
//o
2) 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
İ 如果您不将 fileData.title 初始化为字符串,而是初始化为一个对象,这将适用于您的本机版本。改变
"title":"non" to "title":{}
如果要解析 xml,只需使用正则表达式:
var titles = xml.match(/<title>([^<]*)<'/title>/g).map(function(x) { return x.substring(7,x.length-8); })
相关文章:
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何解决'窗口未定义'终端上的节点JS出错
- 在节点 js 中使用护照本地模块验证(登录)密码时出错
- 从jstree获取选定节点时出错
- 安装节点6后出错,npm ERR!无效版本:1.0.5beta
- 运行babel节点时出错
- 巴别塔&节点:传输后出错((0,_express.express)不是函数)
- 节点.js:尝试侦听设置为动态函数的变量时出错
- 节点 gm 流上出错
- ngjstree:自动选择节点时出错
- 转换为 JSON 的 XML 节点会出错
- XPath 出错.节点不能在创建节点的文档以外的文档中使用
- 尝试从 dom 文档中删除 dom 节点时出错
- 用户不能在从 Heroku 节点.js应用程序在解析上更新 PFUser 时出错
- 使用cron节点,我哪里出错了
- 运行节点程序时出错.模块'提示'不起作用
- 安装节点模块时出错---common.gypi未找到
- 使用节点webkit下载文件时出错(URL中的“chrome扩展名”)
- Meteor:尝试使用节点gd访问图像时出错:ENOENT
- 使用node-xmpp在节点中编写Google CCS服务器时出错