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>
讀取第一個
讀取第二個