dqx13503925528 2014-12-04 22:43
浏览 178
已采纳

在HTML中显示XML

I'm trying to display raw XML within HTML. If there's no HTML elements the XML displays fine However soon as I add my content, I am given this error

error on line 37 at column 6: XML declaration allowed only at the start of the document

After doing some research, the problem is common with having white spaces but I cant notice any. Heres my source code in question.

<?php require 'header.php'; ?>
<div class="sixteen columns">
<h3>XML</h3>
<?php 
header("Content-Type:text/xml");//Tell browser to expect xml
include("config/init.php");
$connection = mysqli_connect($hostname, $username, $password, $databaseName) or die("you did not connect");
$query = "SELECT * FROM art";
$result = mysqli_query($connection, $query) or die (mysqli_error($connection));
//Top of xml file
$_xml = '<?xml version="1.0" encoding="UTF-8"?>';
$_xml .="<art>"; 
while($row = mysqli_fetch_array($result)) { 
$_xml .="<art>"; 
$_xml .="<art_name>".$row['name']."</art_name>"; 
$_xml .="<art_category>".$row['category']."</art_category>"; 
$_xml .="<art_price>".$row['price']."</art_price>"; 
$_xml .="</art>"; 
} 
$_xml .="</art>"; 
//Parse and create an xml object using the string
$xmlobj=new SimpleXMLElement($_xml);
print $xmlobj->asXML();
$xmlobj->asXML('art.xml');
?>
</div>  
<?php require 'footer.php'; ?>

http://www.acalvert.x10host.com/xml.php If you wish to view page source

  • 写回答

3条回答 默认 最新

  • doumu1212 2014-12-04 23:41
    关注

    If you want markup to be displayed then change all < to &lt; and > to &gt;.

    Before displaying anything load your XML to string variable and use this:

    $before = array('<','>');
    $after = array('&lt;','&gt;');
    $xml = str_replace($before,$after,$xml);
    echo $xml;
    

    Secondly - you cannot call header() function after displaying ANY character. Don't use it at all. You want default text/html in your document.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加