xml结束标记不正确关闭

时间:2015-04-21 16:54:16

标签: php xml google-maps google-maps-api-3

我正在使用google map api v3,我正在创建xml数据:

while ($row = @mysql_fetch_assoc($result)){
 $node = $dom->createElement("marker");
 $newnode = $parnode->appendChild($node);
 $newnode->setAttribute("name", $row['name']);
 $newnode->setAttribute("address", $row['address']);
 $newnode->setAttribute("lat", $row['lat']);
 $newnode->setAttribute("lng", $row['lng']);
 $newnode->setAttribute("distance", $row['distance']);
}
echo $dom->saveXML();

在源代码中给出了以下结果:

<markers>
  <marker name="Test Item 1" address="939 W El Camino Real, Mountain View, CA" lat="37.386337" lng="-122.085823" distance="27.109728219880356"/>           
  <marker name="Test Item 2" address="790 Castro St, Mountain View, CA" lat="37.387138" lng="-122.083237" distance="27.139837055162673"/>               
</markers>

那里应该没有问题,但是当我检查元素时,它们略有不同。

<markers>
  <marker name="Test Item 1" address="939 W El Camino Real, Mountain View, CA" lat="37.386337" lng="-122.085823" distance="27.109728219880356">           
     <marker name="Test Item 2" address="790 Castro St, Mountain View, CA" lat="37.387138" lng="-122.083237" distance="27.139837055162673"></marker>
  </marker>               
</markers>

这当然是不正确的。目前,在运行搜索后,它不会获取结果(尽管此标记数据是在页面上创建的),并且搜索会转移到太平洋,而地图上不会生成任何标记。

我不确定这些是否是相关问题,两者都需要解决,但如果源代码错误,并且检查过的元素代码是浏览器所看到的,那么我认为需要首先解决。谢谢!

1 个答案:

答案 0 :(得分:0)

你可以尝试一下吗?

$dom = new DOMDocument('1.0');
$dom->formatOutput = true; 
$parnode = $dom->createElement("markers");
$dom->appendChild($parnode);

while ($row = @mysql_fetch_assoc($result)){
 $node = $dom->createElement("marker");
 $node->setAttribute("name", $row['name']);
 $node->setAttribute("address", $row['address']);
 $node->setAttribute("lat", $row['lat']);
 $node->setAttribute("lng", $row['lng']);
 $node->setAttribute("distance", $row['distance']);
 $parnode->appendChild($node);
}
echo $dom->saveXML();