我收到了这个错误:
error on line 4 at column 1: Extra content at the end of the document
使用此代码:
$this->load->database();
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
$query = $this->db->get('comboTable');
$query = $query->result_array();
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
foreach ($query as $row)
{
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['restaurantName']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
答案 0 :(得分:1)
如果没有看到文本输出本身,就不可能确切知道,但我立即注意到了一些事情:
header("Content-type: text");
。htmlentities
。&
。这意味着您将获得&lt;
而不是<
。str_replace
将数组作为参数,您最好使用它们。答案 1 :(得分:0)
在这个同样的问题上花了大约3天之后,我找到了最好和最简单的方法来解决这个问题,可能会将以下标题添加到代码中:
header("Content-type: text/xml");
header( 'Content-Disposition: attachment; filename='.$_SESSION['WorkTable'].'_contacts-'.$date.'.xml');
在以下行之间将此内容添加到您的代码中:
$query = $query->result_array();
//add it here <--
header("Content-type: text/xml");