使用Javascript从URL读取XML

时间:2014-06-10 14:35:13

标签: javascript xml

我正在编写代码来检索xml文档的某些部分。我正在使用Wolfram API(我已经注册,我有一个AppID。)。因此,如果我在执行搜索命令(下面的变量“url”)之后在本地保存xml文件,它将完美地工作(如果我有xmlDoc.load(“query2.xml”),其中xml保存在query2.url中)。但是,我想改为使用url,并在运行中获取它们而不是保存xml。我尝试了xmlDoc.load(url)但是没有用,在研究之后我发现了一个应该帮助从教程网站中检索这个xml数据的函数,但是它也没有用(它不会在页面上显示任何内容) )。如何获取给出URL的xml?

提前致谢!

<body>
<div id="container" style="background-color:yellow"></div>

<script>


//load xml file

var url = "http://api.wolframalpha.com/v2/query?input=distance%20from%20london%20to%20california&appid=xxx";
if (window.ActiveXObject){
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false; //Enforce download of XML file first. IE only.
}
else if (document.implementation && document.implementation.createDocument)
var xmlDoc= document.implementation.createDocument("","doc",null);
if (typeof xmlDoc!="undefined") {


function loadXMLDoc(filename)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else // code for IE5 and IE6
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
} 
xmlDoc.load(loadXMLDoc(url));

//xmlDoc.load("query2.xml");

}
else {

}

//Regular expression used to match any non-whitespace character
var notWhitespace = /\S/

function getnumber(){
//Cache "messages" element of xml file
var msgobj=xmlDoc.getElementsByTagName("plaintext")[1]

//REMOVE white spaces in XML file. Intended mainly for NS6/Mozilla
for (i=0;i<msgobj.childNodes.length;i++){
if ((msgobj.childNodes[i].nodeType == 3)&&
(!notWhitespace.test(msgobj.childNodes[i].nodeValue))) {
// that is, if it's a whitespace text node
msgobj.removeChild(msgobj.childNodes[i])
i--
}
}

//Get answer and display it in DIV:
document.getElementById("container").innerHTML=
xmlDoc.getElementsByTagName("plaintext")[1].childNodes[0].nodeValue
}

if (typeof xmlDoc!="undefined"){
if (window.ActiveXObject) //if IE, simply execute script (due to async prop).
getdaily()
else //else if NS6, execute script when XML object has loaded
xmlDoc.onload=getnumber
}
</script>

</body>

0 个答案:

没有答案