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] - 第一个 05034471df6398a62d5708f78b78e0ac 元素。
childNodes[0] - 05034471df6398a62d5708f78b78e0ac 元素的第一个子元素(文本节点)。
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>
读取第一个77a74ca8c1d5e9a5096e217b38b998c4:xmlDoc.getElementsByTagName("to")[0].getElementsByTagName("t00")[0].childNodes[0].nodeValue。
读取第二个77a74ca8c1d5e9a5096e217b38b998c4:xmlDoc.getElementsByTagName("too")[0].childNodes[0].nodeValue。