js如何解析xml字符串?

xgia7 2013-01-16 11:14:58
如下xml字符串:
--------------------------------------
<markers>
<marker carId="1" carName="SHANGHAI" gpsTime="2011-08-26 21:21:11.0" lat="31.230393" lng="121.473704" direction="222" speed="22" />
<marker carId="7" carName="XIAMEN" gpsTime="2011-08-26 21:21:11.0" lat="24.479836" lng="118.089421" direction="222" speed="22" />
</markers>
---------------------------------------
如何解析?
----------------------------------------
提示:我在网上看到的js解析xml字符串方法,xml字符串都是如下格式,
上面的格式怎么解析?
<NewInfo>
<News>
<Title>今天要下雨</Title>
<Content>今天确实下雨了</Content>
<Date>2009-02-04</Date>
</News>
<News>
<Title>今天出太阳</Title>
<Content>今天确实出太阳了</Content>
<Date>2009-02-03</Date>
</News>
</NewInfo>
参考帖子
http://blog.csdn.net/snowfox3761/article/details/4281775
http://zhidao.baidu.com/question/397490376.html
http://blog.163.com/hubincqdj@yeah/blog/static/122148106200972914454372/
-----------------------------------------
...全文
1925 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 社区高级成员 T9 2013-01-18
  • 打赏
  • 举报
回复
还是用jQuery吧, 比较简洁点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        var xml = '<markers>';
        xml += '<marker carId="1" carName="SHANGHAI" gpsTime="2011-08-26 21:21:11.0" lat="31.230393" lng="121.473704" direction="222" speed="22" />';
        xml += '<marker carId="7" carName="XIAMEN" gpsTime="2011-08-26 21:21:11.0" lat="24.479836" lng="118.089421" direction="222" speed="22" />';
        xml += '</markers>';

        var xmlDoc = $.parseXML(xml);
        var result="";
        $(xmlDoc).find("markers marker").each(function () {
            result += "carId = " + $(this).attr("carId")
                + " ;carName =" + $(this).attr("carName")
                + " ;gpsTime =" + $(this).attr("gpsTime") + "\n";
        });

        alert(result);
    });
</script>
</head>
<body>
</body>
</html>
86y 2013-01-18
  • 打赏
  • 举报
回复
效果如图
86y 2013-01-18
  • 打赏
  • 举报
回复
likeajin 2013-01-18
  • 打赏
  • 举报
回复
看看这个,不晓得是不是你想要的:纯js解析xml字符串到js object
fengzhekun 2013-01-18
  • 打赏
  • 举报
回复
XML和HTML获取差不多,你先获取<NewInfo>,var oNewInfo = document.getElementsByTagName('NewInfo'),然后获取<News>,var oNews = document.getElementsByTagName('Nwes'); alert(oNews.length) 应该是2
鸡肋啊 2013-01-17
  • 打赏
  • 举报
回复
都有例子你还不会啊; var items = xmlDoc.getElementsByTagName("marker"); alert(items.length); for(var i=0;i<items.length;i++){ var x = items[i]; alert(x.getAttribute("carId")); alert(x.getAttribute("carName")); }
faith.huan 2013-01-17
  • 打赏
  • 举报
回复
<html> <head> <script type="text/javascript"> function parseXML(text) { var xmlDoc; try //Internet Explorer { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(text); } catch (e) { try //Firefox, Mozilla, Opera, etc. { parser = new DOMParser(); xmlDoc = parser.parseFromString(text, "text/xml"); } catch (e) { alert(e.message); } } return xmlDoc; } window.onload=function (){ var text = '<markers> <marker carId="1" carName="SHANGHAI" gpsTime="2011-08-26 21:21:11.0" lat="31.230393" lng="121.473704" direction="222" speed="22" /> <marker carId="7" carName="XIAMEN" gpsTime="2011-08-26 21:21:11.0" lat="24.479836" lng="118.089421" direction="222" speed="22" /> </markers>'; var xmlDoc = parseXML(text); var a=xmlDoc .getElementsByTagName("marker")[0]; document.getElementById("carName").innerHTML = a.getAttribute("carName"); }; </script> </head> <body> <p> <b>carName:</b> <span id="carName"></span> </p> </body> </html> 这个可以 已经测试过了
xgia7 2013-01-17
  • 打赏
  • 举报
回复
alert(items.length); 这个都报错呢
xgia7 2013-01-17
  • 打赏
  • 举报
回复
楼上的兄弟liukewengx , 我是按照你的这种做的,就是报错
faith.huan 2013-01-17
  • 打赏
  • 举报
回复
<html> <head> <script type="text/javascript"> function parseXML() { text="<note>"; text=text+"<to>George</to>"; text=text+"<from>John</from>"; text=text+"<heading>Reminder</heading>"; text=text+"<body>Don't forget the meeting!</body>"; text=text+"</note>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) { alert(e.message); return; } } document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue; document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue; document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue; } </script> </head> <body onload="parseXML()"> <h1>W3Schools Internal Note</h1> <p><b>To:</b> <span id="to"></span><br /> <b>From:</b> <span id="from"></span><br /> <b>Message:</b> <span id="message"></span> </p> </body> </html>

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧