这里是我的代码(从旧帖子中获得)。我做错了什么?如何从XML文件中提取数据并在html表上显示它
1.第一个test.xml,一个用于存储数据的xml文件。
<?xml version="1.0"?>
<item>
<entry>
<Date>1/01/2001</Date>
<ProductName>milk</ProductName>
<Quantity>10</Quantitty>
<GrossPrice>50</GrossPrice>
<Profit>10</Profit>
</entry>
<entry>
<Date>2/10/2007</Date>
<ProductName>milk</ProductName>
<Quantity>20</Quantitty>
<GrossPrice>100</GrossPrice>
<Profit>20</Profit>
</entry>
</item>
2.第二个是demo.html,用于显示存储在xml文件中的数据。这个html有一个输入标签作为文本和一个提交按钮。点击提交按钮,它应该搜索给定的输入并显示输出。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
Product Name: <input type="text" name="ProductName" id="input">
<br />
<input type="submit" value="Submit" onClick="searchXML()">
<br />
<br />
<div id="results">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script language="JavaScript" type="text/javascript">
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
}
function searchXML()
{
xmlDoc=loadXMLDoc("test.xml");
x=xmlDoc.getElementsByTagName("ProductName");
input = document.getElementById("input").value;
size = input.length;
if (input == null || input == "")
{
document.getElementById("results").innerHTML= "Please enter a Product Name!";
return false;
}
for (i=0;i<x.length;i++)
{
startString = ProductName.substring(0,size);
if (startString.toLowerCase() == input.toLowerCase())
{
date=xmlDoc.getElementsByTagName("Date")[i].childNodes[0].nodeValue;
product=xmlDoc.getElementsByTagName("ProductName")[i].childNodes[0].nodeValue;
quantity=xmlDoc.getElementsByTagName("Quantity")[i].childNodes[0].nodeValue;
grossprice=xmlDoc.getElementsByTagName("GrossPrice")[i].childNodes[0].nodeValue;
profit=xmlDoc.getElementsByTagName("Profit")[i].childNodes[0].nodeValue;
divText = "<h1>The contact details are:</h1><br /><table border=1><tr><th>Date</th><th>Product</th><th>Quantity</th><th>Gross Price</th><th>Profit</th></tr>" + "<tr><td>" + date + "</td><td>" + product + "</td><td>" + quantity + "</td><td>" + grossprice + "</td><td>" + profit + "</td></tr>" + "</table>";
break;
}
else
{
divText = "<h2>The product does not exist.</h2>";
}
}
document.getElementById("results").innerHTML= divText;
}
</script>
</body>
</html>
我对铬为得到一个错误---
的XMLHttpRequest无法加载文件:/// C:/Users/chandan/Desktop/demo/test/test.xml。只有协议方案支持跨源请求:http,data,chrome-extension,https,chrome-extension-resource。 demoNew.html:28 Uncaught NetworkError:未能在'XMLHttpRequest'上执行'send':未能加载'file:/// C:/Users/chandan/Desktop/demo/test/test.xml'。
然而,当我在Firefox上运行此它在加载XML文件,但没有显示输出,HTML的线44给错误..
如何解决?
请小提琴,以便其他能帮助这里http://jsfiddle.net/ – sking 2014-12-13 11:23:25