1

我正在尝试使用 java 脚本解析一个简单的 xml 文件。当我将文件加载到网络浏览器“Chrome”中时,页面什么也不显示。 在此处输入图像描述

请让我知道我的错误是什么。

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 解析器

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);
  }
4

1 回答 1

2

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

于 2013-07-21T11:35:56.213 回答