谷歌地图js v3 xml为空 [英] google maps js v3 xml is null

查看:124
本文介绍了谷歌地图js v3 xml为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图检索XML并将其放入var标记中,当我运行它时,

  var markers = xml.documentElement.getElementsByTagName( 标志物); 

我得到一个错误,说XML是空的,这是我在运行生成的文件时得到的XML XML

 这个XML文件似乎没有任何关联的样式信息。文档树如下所示。 
< markers>
< / markers>

以下是一些周边代码

  downloadUrl(mapXML2.php,function(data){
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName(marker );

函数downloadUrl(url,callback){
var request = window.ActiveXObject?
new ActiveXObject('Microsoft.XMLHTTP'):
new XMLHttpRequest;

request.onreadystatechange = function(){
if(request.readyState == 4){
request.onreadystatechange = doNothing;
callback(request,request。状态);
}
};

request.open('GET',url,true);
request.send(null);
}


解决方案

我已经从先前的问题与我生成的XML没有错误。如果行头( Content-type:text / xml)在我的文件中被删除我得到错误 Uncaught TypeError:无法读取属性'documentElement'为null 这表明你没有发送标题。请记住,必须在发送任何实际输出之前调用header(),或者通过普通的HTML标签,文件中的空行或PHP来发送。 试试

  header(Content-type:text / xml); 
//启动XML文件,创建父节点
$ dom = new DOMDocument(1.0);
$ node = $ dom-> createElement(markers);
$ parnode = $ dom-> appendChild($ node);
//连接到数据库


Im trying to retrieve the XML and put it into the var markers, when I run it the line

var markers = xml.documentElement.getElementsByTagName("marker");

I get an error saying XML is null, here is the XML I get when running the file that produces the XML

This XML file does not appear to have any style information associated with it. The document tree is shown below.
  <markers>
 <marker name="funtimes" address="5451 Forest Cove Lane" lat="34.1519" lng="-118.774717" type="Basketball" desc="going to play fun times with fun people" date="2012-12-29" time="23:00:00" eventcap="4" eventcur="10" eventid="1" admin="true"/>
 <marker name="Event test" address="1231 fake st" lat="34.1517" lng="-118.77234" type="Cycling" desc="just a description" date="2013-01-31" time="12:00:00" eventcap="10" eventcur="4" eventid="2" admin="true"/>
 <marker name="Event test 2" address="1231 fake st" lat="34.1512" lng="-118.77421" type="Football" desc="just a description 2" date="2013-01-31" time="12:00:00" eventcap="10" eventcur="3" eventid="3" admin="true"/>
 <marker name="funtimes" address="5451 Forest Cove Lane" lat="34.1519" lng="-118.774717" type="Basketball" desc="going to play fun times with fun people" date="2012-12-29" time="23:00:00" eventcap="4" eventcur="10" eventid="1" admin="false"/>    
 <marker name="Event test" address="1231 fake st" lat="34.1517" lng="-118.77234" type="Cycling" desc="just a description" date="2013-01-31" time="12:00:00" eventcap="10" eventcur="4" eventid="2" admin="false"/>
 <marker name="Event test 2" address="1231 fake st" lat="34.1512" lng="-118.77421" type="Football" desc="just a description 2" date="2013-01-31" time="12:00:00" eventcap="10" eventcur="3" eventid="3" admin="false"/>
 <marker name="Event test 3" address="2142 fake st" lat="34.1602" lng="-118.77789" type="Football" desc="just a description 3" date="2013-01-28" time="13:00:00" eventcap="8" eventcur="2" eventid="4" admin="false"/>
 </markers>

Here is some of the surrounding code

downloadUrl("mapXML2.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");

 function downloadUrl(url, callback) {
      var request = window.ActiveXObject ?
      new ActiveXObject('Microsoft.XMLHTTP') :
      new XMLHttpRequest;

  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      request.onreadystatechange = doNothing;
      callback(request, request.status);
    }
  };

  request.open('GET', url, true);
  request.send(null);
}

解决方案

I have run your code from previous question with my generated XML with no errors. If the line header("Content-type: text/xml") is removed in my file I get the error Uncaught TypeError: Cannot read property 'documentElement' of null This shows you are not sending the header. Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP.

Try

header("Content-type: text/xml");
// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
//Connect to database

这篇关于谷歌地图js v3 xml为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆