使用Javascript解析xml文件时,Web浏览器不显示任何内容

时间:2013-07-21 11:28:23

标签: javascript xml

我正在尝试使用java-script解析一个简单的xml文件。当我将文件加载到webrowser“Chrome”时,页面什么也没显示。 enter image description here

请让我知道我的错误。

xml文件

< ?xml version="1.0" encoding="UTF-8" ?>
<company>
    <employee id="001" >John</employee>
    <turnover>
        <year id="2000">100,000</year>
        <year id="2001">140,000</year>
        <year id="2002">200,000</year>
    </turnover>
</company>

JAvaScript Parser

Read XML in Microsoft Browsers</title>
<script type="text/javascript">
var xmlDoc;
function loadxml()
{
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.onreadystatechange = readXML; /* to be notified when the state changes */
  xmlDoc.load("C:\Users\Amr\Desktop\files\xml.xml");
}

function readXML()
{
   if(xmlDoc.readyState == 4)
   {
    //Using documentElement Properties
    //Output company
    alert("XML Root Tag Name: " + xmlDoc.documentElement.tagName);

    //Using firstChild Properties
    //Output year
    alert("First Child: " + xmlDoc.documentElement.childNodes[1].firstChild.tagName);

//Using lastChild Properties
//Output average
alert("Last Child: " + xmlDoc.documentElement.childNodes[1].lastChild.tagName);

//Using nodeValue and Attributes Properties
//Here both the statement will return you the same result
//Output 001
alert("Node Value: " + xmlDoc.documentElement.childNodes[0].attributes[0].nodeValue);
alert("Node Value: " + xmlDoc.documentElement.childNodes[0].attributes.getNamedItem("id").nodeValue);

//Using getElementByTagName Properties
//Here both the statement will return you the same result
//Output 2000
alert("getElementsByTagName: " + xmlDoc.getElementsByTagName("year")[0].attributes.getNamedItem("id").nodeValue);

//Using text Properties
//Output John
alert("Text Content for Employee Tag: " + xmlDoc.documentElement.childNodes[0].text);

//Using hasChildNodes Properties
//Output True
alert("Checking Child Nodes: " + xmlDoc.documentElement.childNodes[0].hasChildNodes);
  }

1 个答案:

答案 0 :(得分:2)

这是因为您使用ActiveX对象进行解析,它仅在IE浏览器中可用。由于您是从文件加载XML,因此请使用XMLHttpRequest。它从版本7开始在IE中实现,还有chrome,firefox,safari等。 这是一个很好的解释和一些民主代码: http://wordsfromgeek.blogspot.se/2008/11/xml-dom-in-chrome.html?m=1