首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换为json的xml节点会出现错误。

转换为json的xml节点会出现错误。
EN

Stack Overflow用户
提问于 2013-10-21 00:54:10
回答 2查看 123关注 0票数 0

我知道有许多类似的问题(花了2-3天时间寻找解决方案),但大多数问题都引用了库,如xml2jsonjson2xml,这不是我想要的.

因此,问题是:我想从XML中读取数据,并使用纯 javascript 将其保存到JSON对象中,而不是使用jQuery,而不是库,只使用纯javascript。谢谢你的帮助!

( 0) xml

代码语言:javascript
复制
<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 //有错误

代码语言: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 //无错误

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-21 01:36:59

如果您不将fileData.title初始化为字符串,而是初始化为对象,这将与您的本地版本一起使用。变化

代码语言:javascript
复制
"title":"non" to "title":{}
票数 0
EN

Stack Overflow用户

发布于 2013-10-21 01:03:42

如果要解析xml,只需使用正则表达式:

代码语言:javascript
复制
var titles = xml.match(/<title>([^<]*)<\/title>/g).map(function(x) { return x.substring(7,x.length-8); })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19484727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档