使用PHP domDocument解决xml格式问题

时间:2013-12-12 13:51:47

标签: php xml

HI我第一次尝试在php中创建一个XML文件,但它的工作方式却不正确我希望

<Markers>
  <marker></marker>
  <marker></marker>
   etc
</Markers>

相反,我有

<markers>
 <marker>
    <marker>
       <marker>
       </marker>
    </marker>
   </marker>
 </markers>


<?PHP
  require("phpsqlajax_dbinfo.php");

  // Start XML file, create parent node
  $dom=new DOMDocument("1.0");
  $node=$dom->createElement("markers");
  $parnode=$dom->appendChild($node); 


  // Iterate through the rows, adding XML nodes for each
  while (odbc_fetch_row($result)){
     $node = $dom->createElement("marker");  
     $newnode = $parnode->appendChild($node);   
     $newnode->setAttribute("traffic",odbc_result($result,"TRAFFIC"));
     $newnode->setAttribute("latitude",odbc_result($result,"LATITUDE"));  
     $newnode->setAttribute("longitude",odbc_result($result,"LONGITUDE"));  
    } 

    echo $dom->saveXML();

我从ODBC连接填充。

我试过环顾网但是在不同的布局上没有遇到很多例子,感谢任何帮助或正确方向的指示。

1 个答案:

答案 0 :(得分:0)

无法重现问题。已经简化为没有数据库数据的测试:

// Start XML file, create parent node
$dom=new DOMDocument("1.0");
$node=$dom->createElement("markers");
$parnode=$dom->appendChild($node); 

// Iterate through the rows, adding XML nodes for each
for ($i = 0; $i < 3; $i++){
   $node = $dom->createElement("marker");  
   $newnode = $parnode->appendChild($node);   
   $newnode->setAttribute('foo', 'bar');
}   

echo $dom->saveXML();

输出(漂亮):

<?xml version="1.0"?>
<markers>
  <marker foo="bar"/>
  <marker foo="bar"/>
  <marker foo="bar"/>
</markers>

可以测试online