XML在Web开发中使用很广泛,通常作为数据传递的载体。一般将数据传递给前端的时候,需要用JavaScript解析后才能使用。所以,用JavaScript解析XML是使用得非常普遍的。
有以下一个XML文件:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<note>
<to>duncan</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
可以使用下面的方法解析:
<html>
<head>
<script type="text/javascript">
function parseXML() {
try //Internet Explorer
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
} catch(e) {
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc = document.implementation.createDocument("", "", null);
} catch(e) {
alert(e.message);
return;
}
}
xmlDoc.async = false;
xmlDoc.load("note.xml");
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>www.nowamagic.net</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>
xmlDoc.getElementsByTagName(“to”)[0].childNodes[0].nodeValue 这段代码如何理解?
- xmlDoc -由解析器创建的 XML 文档。
- getElementsByTagName(“to”)[0] - 第一个 元素。
- childNodes[0] - 元素的第一个子元素(文本节点)。
- nodeValue - 节点的值(文本本身)。
如果xml文件为:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<note>
<to>asdfsd
<too>duncan1</too>
</to>
<too>duncan2</too>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
读取第一个:xmlDoc.getElementsByTagName(“to”)[0].getElementsByTagName(“t00”)[0].childNodes[0].nodeValue。
读取第二个:xmlDoc.getElementsByTagName(“too”)[0].childNodes[0].nodeValue。
转自:http://www.nowamagic.net/javascript/js_GetDataFromXml.php