将输出保存为.xml格式

时间:2017-01-11 08:09:23

标签: php mysql xml google-maps output

我正在研究一个示例项目,该项目根据谷歌地图上的区域为电信运营商提供手机信号塔的位置。

我正在按照google maps API操作方法中的步骤操作 google maps instructions

我被困在这里。我已经按照所有说明操作,我也从数据库中获取了我的网页上的XML输出。现在按照我必须遵循的说明,我必须将此输出保存到.XML文件到我的服务器进行进一步处理,并在谷歌地图上添加标记。标记包括Lat-Long值和所选单元塔的一些信息:cell-id,位置代码和无线电类型。

我已经搜索了解决方案,但我坚持 - PHP:DOMDocument :: save以及如何在我的代码中实现。

附上相同的代码供参考:

function parseToXML($htmlStr) {
    $xmlStr = str_replace('<','&lt;',$htmlStr);
    $xmlStr = str_replace('>','&gt;',$htmlStr);
    $xmlStr = str_replace('"','&quot;',$htmlStr);
    $xmlStr=str_replace("'",'&#39;',$xmlStr);
    $xmlStr = str_replace('&','&amp;',$htmlStr);
    return $xmlStr;
}


$t_query = "SELECT `radio_type`, `lac`,`cell-id`,`longitude`,`latitude` FROM `".DBNAME."`.`celltower` WHERE `mcc` = '".$mcc."' AND `mnc` = '".$mnc."'";

$t_query_exec = mysqli_query($con, $t_query);

if($t_num_rows = 0) {
    die("Unable to fetch any data..Please try again..!!");
} else {
    header("Content-type: text/xml");

    //Begin XML file, echo parent node.

    echo '<?xml version="1.0" encoding="utf-8"?>';
    echo '<root>';
    echo '<markers>';
    //Iterating through rows, and printing XML nodes for each
    while($t_var = mysqli_fetch_assoc($t_query_exec)) {
        //Add to XML document node.
        echo '<marker ';
        echo 'radio_type="' .parseToXML($t_var['radio_type']) . '" ';
        echo 'lac="' .parseToXML($t_var['lac']) . '" ';
        echo 'cell-id="' .parseToXML($t_var['cell-id']) . '" ';
        echo 'longitude="' . $t_var['longitude'] . '" ';
        echo 'latitude="' .$t_var['latitude'] . '" ';
        echo '/>';
    }

    echo '</markers>';
    echo '</root>'; 
}

我只需要知道如何将输出保存到.XML文件中 提前谢谢。

1 个答案:

答案 0 :(得分:0)

只需将您的XML放入变量并使用file_put_contents()

保存即可
$xmlString = '<?xml version="1.0" encoding="utf-8"?>';
$xmlString .=  '<root>';
$xmlString .=  '<markers>';
//Iterating through rows, and printing XML nodes for each
while($t_var = mysqli_fetch_assoc($t_query_exec)) {
    //Add to XML document node.
    $xmlString .=  '<marker ';
    $xmlString .=  'radio_type="' .parseToXML($t_var['radio_type']) . '" ';
    $xmlString .=  'lac="' .parseToXML($t_var['lac']) . '" ';
    $xmlString .=  'cell-id="' .parseToXML($t_var['cell-id']) . '" ';
    $xmlString .=  'longitude="' . $t_var['longitude'] . '" ';
    $xmlString .=  'latitude="' .$t_var['latitude'] . '" ';
    $xmlString .=  '/>';
}

$xmlString .=  '</markers>';
$xmlString .=  '</root>';   

file_put_contents('output.xml', $xmlString);