js怎么解析xml字符串

js如何解析xml字符串?如下xml字符串:--------------------------------------markersmarker carId1

js如何解析xml字符串?
如下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/
----------------------------------------- xml js ajax
[解决办法]
都有例子你还不会啊;
 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")); 
  }

[解决办法]
<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>

[解决办法]
<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>
这个可以  已经测试过了

[解决办法]
【JS读取XML并显示各节点[兼容IE/FF/Chrome,Safari]】
[解决办法]
XML和HTML获取差不多,你先获取<NewInfo>,var oNewInfo = document.getElementsByTagName('NewInfo'),然后获取<News>,var oNews = document.getElementsByTagName('Nwes');
alert(oNews.length)  应该是2

[解决办法]
还是用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>