清理XML的mysql数据

时间:2012-10-17 23:51:25

标签: php mysql xml loops

我正在尝试遍历我的MySQL数据并为我的XML清理它,但我试图以最有效的方式做到这一点。以下是我的代码。此代码仅清除一个字段CompanyName如果可能的话,我想清除所有8个字段。

header("Content-type: text/xml");
$SQL_query = "SELECT * FROM COMPANYINFO ORDER BY CompanyName DESC"; 
$resultID = mysql_query($SQL_query, $linkID) or die("Data not found."); 

$xml_output = "<?xml version=\"1.0\"?>\n"; 
$xml_output .= "<markers>\n"; w

for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){ 
    $row = mysql_fetch_assoc($resultID); 

            // Escaping illegal characters 
        $row['CompanyName'] = str_replace("&", "&", $row['CompanyName']); 
        $row['CompanyName'] = str_replace("<", "<", $row['CompanyName']); 
        $row['CompanyName'] = str_replace(">", "&gt;", $row['CompanyName']); 
        $row['CompanyName'] = str_replace("\"", "&quot;", $row['CompanyName']); 

    $xml_output .= "\t\t<marker name='.$row['CompanyName']."' address='".$row['Address_1']."' phone='".$row['Phone']."' lat='".$row['Lat_Info']."' lng='".$row['Long_Info']."' county='".$row['County']."'/>\n";
} 

$xml_output .= "</markers>"; 


echo $xml_output; 

3 个答案:

答案 0 :(得分:6)

运行您需要通过htmlspecialchars()放入XML的任何字符串,您应该没问题。

关于处理结果,您可以使用foreach循环来遍历数组。

放在一起,你得到:

foreach($row as $column) {
    $row[$column] = htmlspecialchars($column);
}

答案 1 :(得分:0)

检查htmlspecialchars功能。

答案 2 :(得分:0)

怎么样:

$row = mysql_fetch_assoc($resultID); 
$row = array_map('htmlentities', $row);
$xml_output .= "\t\t<marker name='.$row['CompanyName']."' address='".$row['Address_1']."' phone='".$row['Phone']."' lat='".$row['Lat_Info']."' lng='".$row['Long_Info']."' county='".$row['County']."'/>\n";