从PHP加载XML错误:Microsoft.XMLHTTP.DocumentElement为空

Loading XML from PHP errors: Microsoft.XMLHTTP.DocumentElement null

本文关键字:Microsoft XMLHTTP DocumentElement 为空 错误 PHP 加载 XML      更新时间:2023-09-26

我试图根据在mysql数据库中提交的值在谷歌地图上放置标记。当使用PHP动态加载xml时,由于responseXML,不会在地图上放置任何标记。DocumentElement属性没有被赋值。当我从静态文件加载XML时,它可以工作,而不是从db动态加载时。

这是不能工作的页面:http://www.thirstygolfer.com/utils/maptest2.html
下面是工作页面:http://www.thirstygolfer.com/utils/maptest1.html

生成xml的PHP文件:www.thirstygolfer.com/utils/xmldump3.php

下面是来自thirstygolfer.com/utils/xmldump3.php的PHP代码(减去db连接信息):

<?php
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node); 
$result=mysql_query("SELECT * FROM Main WHERE State='MA' and FirstLetter='A'");
header("Content-type: text/xml");
while ($row = mysql_fetch_assoc($result)){    
$node = $dom->createElement("marker");   
$newnode = $parnode->appendChild($node);     
$newnode->setAttribute("id",$row['id']);  
$newnode->setAttribute("lat", $row['Lat']);    
$newnode->setAttribute("lng", $row['Lon']);    
} 
echo $dom->saveXML();
?>

请帮助! !

生成的XML在输出的顶部包含空行,这将使其成为无效的XML。这可能是因为在包含的PHP文件中,在第一个<?php之前或在最后一个?>之后有空行

您可能还需要设置header('Content-Type: text/xml'),以便浏览器知道它是什么类型的数据

XML上的头是不正确的(来自websniffer.net)

HTTP Response Header
Name    Value   Delim
Status: HTTP/1.1 200 OK
Date:   Fri, 11 Jan 2013 18:38:04 GMT   
P3P:    policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"   
Content-Type:   text/html   
Age:    0   
Connection: close   
Server: YTS/1.19.11:

Content-Type需要为"text/xml"

问题解决。谢谢你的帮助。我的代码有两个问题:

1)。内容类型为"text/html"。我需要在我的php脚本中添加以下行:

header("Content-type: text/xml");

2)。xml文件的顶部有空白行。IE解决了这个问题,但Chrome和FF有问题。我删除了文件顶部的额外行,现在它可以在所有浏览器中工作。