1. 程式人生 > >跨瀏覽器 解析 XML DOM

跨瀏覽器 解析 XML DOM

解析 XML 字串 - 一個跨瀏覽器的例項

下面的程式碼載入並解析了一個 XML 字串:

<html>
<body>
<script type="text/javascript">
text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";

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)}
  }
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>

TIY

註釋:Internet Explorer 使用 loadXML() 方法來解析 XML 字串,而其他瀏覽器使用 DOMParser 物件

可以把供載入 XML 文件的程式碼儲存在單獨的函式中。

例項

為了避免因載入文件而重複編寫程式碼,可以把程式碼儲存在一個單獨的 JavaScript 檔案中:
function loadXMLDoc(dname) 
{
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)} } try { xmlDoc.async=false; xmlDoc.load(dname); return(xmlDoc); } catch(e) {alert(e.message)} return(null); }