我想用PHP输出XML文档,我的PHP代码是这样写的:<?php
    header("Content-Type:text/xml");
    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    echo "<flowers>\n";
    echo "<flower>\n";
    echo "<name>rose</name>\n";
    echo "<color>red</color>\n";
    echo "</flower>\n";
    echo "<flower>\n";
    echo "<name>mudan</name>\n";
    echo "<color>pink</color>\n";
    echo "</flower>\n";
    echo "</flowers>";
?>问题是:如果去掉header("Content-Type:text/xml"),就能正常显示出XML格式的文档。
        如果加上header("Content-Type:text/xml"),就报这样的错误:
        XML 文档只能有一个顶层元素。处理资源 'http://www.0316.com/plus/aa.php' 时出错。第 2 行,位置: 2 
多谢赐教了!        

解决方案 »

  1.   

    你确认下你的输出文件编码是否是utf-8
      

  2.   

    用web方式执行这段代码没有任何问题.
    问题不在这里,可能是你这段代码嵌入到其他代码后面,而其他代码中已经输出了XML
      

  3.   

    你确定?在执行这个php文件之前没有执行其它的任何操作?
      

  4.   

    奇怪了,我这里也运行正常的,你看一下你的文件是否有UTF-8的BOM签名,或者用其他编辑器重新建一个文件,再把这段代码复制进去执行,估计是文件签名的原因,因为它会先输出字符
      

  5.   

    代码没问题。重新新建1个php文件在试试
      

  6.   

    本地测试结果:header("Content-Type:text/xml")无论有没有这句话 都正常!
      

  7.   

    这个问题解决了,保存文件的时候选择ANSI编码就行了。
    可是我发现,用echo输出的“静态”的XML可以在浏览器上正常显示出来,如果是用echo输出从数据库里查到的信息组成的XML,就不能以XML文档的格式显示出来。就好像直接显示了一个字符串一样。但是在“源代码”里可以看到XML的节点。
    http://www.0316.com/plus/lfw_house_company.php
    这个问题,请各位帮我看看。
      

  8.   

    浏览器utf-8编码看到
    740 腾威房产 0316-2117257 6843862 廊坊市银河北路军分区干休所门店47-26号 201073017182493396231.gif 400 中和房产 15075611666 新源道169号 201073993715391381.jpg 479 置家房产 2091808/2326578 新开路天域花园底商24号 201071192133741036.jpg 529 双庆房地产 0316-6635289 廊坊市五大街E座126号 201071515575192175501.jpg 643 金浩房产 15233061789 廊坊三大街B座178号 201072110204274524931.JPG 750 鑫嘉源房产 15097643581 廊坊市银河北路47号-25 201081942502961472.bmp 735 焱麟房产 0316-2157268 廊坊市银河北路47-24号 201073016394243334751.jpg 411 廊坊市源森房产经济有限公司 0316-2099689 廊坊市新世纪步行街第二大街南内街B座105号 20107492126121408.jpg 727 旺达房产经纪服务有限公司 6860479 廊坊市五大街演艺广场E-103 20107301515890221261.jpg 361 乾中达房地产 13373262269 廊坊市第二大街南内街A座100号 201071711231666363701.jpg
    是否是编码问题
    <?xml version='1.0' encoding='gbk'?> 
    <companys> 
    <company> 
    <companyid>740</companyid> 
    <companyname>鑵惧▉鎴夸骇</companyname> 
    <tel>0316-2117257   6843862</tel> 
    <address>寤婂潑甯傞摱娌冲寳璺啗鍒嗗尯骞蹭紤鎵€闂ㄥ簵47-26鍙寤婂潑甯傞摱娌冲寳璺
      

  9.   

    很疯狂啊!
    现在用ie浏览时无法显示 XML 页。 
    使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 
    --------------------------------------------------------------------------------结束标记 'company' 与开始标记 'address' 不匹配。处理资源 'http://www.0316.com/plus/lfw_house_company.php' 时出错。第 9 行,位置: 3 </company>
    --^
    查看源码<?xml version='1.0' encoding='gbk'?>
    <companys>
    <company>
    <companyid>740</companyid>
    <companyname>腾威房产</companyname>
    <tel>0316-2117257   6843862</tel>
    <address>廊坊市银河北路军分区干休所门店47-26号</address>
    <titlePic>201073017182493396231.gif</titlePic>
    </company>
    <company>
    <companyid>400</companyid>
    <companyname>中和房产</companyname>
    <tel>15075611666</tel>
    <address>新源道169号</address>
    <titlePic>201073993715391381.jpg</titlePic>
    </company>
    <company>
    <companyid>479</companyid>
    <companyname>置家房产</companyname>
    <tel>2091808/2326578</tel>
    <address>新开路天域花园底商24号</address>
    <titlePic>201071192133741036.jpg</titlePic>
    </company>
    <company>
    <companyid>529</companyid>
    <companyname>双庆房地产</companyname>
    <tel>0316-6635289</tel>
    <address>廊坊市五大街E座126号</address>
    <titlePic>201071515575192175501.jpg</titlePic>
    </company>
    <company>
    <companyid>643</companyid>
    <companyname>金浩房产</companyname>
    <tel>15233061789</tel>
    <address>廊坊三大街B座178号</address>
    <titlePic>201072110204274524931.JPG</titlePic>
    </company>
    <company>
    <companyid>750</companyid>
    <companyname>鑫嘉源房产</companyname>
    <tel>15097643581</tel>
    <address>廊坊市银河北路47号-25</address>
    <titlePic>201081942502961472.bmp</titlePic>
    </company>
    <company>
    <companyid>735</companyid>
    <companyname>焱麟房产</companyname>
    <tel>0316-2157268</tel>
    <address>廊坊市银河北路47-24号</address>
    <titlePic>201073016394243334751.jpg</titlePic>
    </company>
    <company>
    <companyid>411</companyid>
    <companyname>廊坊市源森房产经济有限公司</companyname>
    <tel>0316-2099689</tel>
    <address>廊坊市新世纪步行街第二大街南内街B座105号</address>
    <titlePic>20107492126121408.jpg</titlePic>
    </company>
    <company>
    <companyid>727</companyid>
    <companyname>旺达房产经纪服务有限公司</companyname>
    <tel>6860479</tel>
    <address>廊坊市五大街演艺广场E-103</address>
    <titlePic>20107301515890221261.jpg</titlePic>
    </company>
    <company>
    <companyid>361</companyid>
    <companyname>乾中达房地产</companyname>
    <tel>13373262269</tel>
    <address>廊坊市第二大街南内街A座100号</address>
    <titlePic>201071711231666363701.jpg</titlePic>
    </company>
    </companys>我把这些copy到一个新建的123.php文件中
    显示:Parse error: syntax error, unexpected T_STRING in D:\wwwroot\123.php on line 1去掉第一行后显示:740 腾威房产 0316-2117257 6843862 
    廊坊市银河北路军分区干休所门店47-26号
    201073017182493396231.gif 400 中和房产 15075611666 
    新源道169号
    201073993715391381.jpg 479 置家房产 2091808/2326578 
    新开路天域花园底商24号
    201071192133741036.jpg 529 双庆房地产 0316-6635289 
    廊坊市五大街E座126号
    201071515575192175501.jpg 643 金浩房产 15233061789 
    廊坊三大街B座178号
    201072110204274524931.JPG 750 鑫嘉源房产 15097643581 
    廊坊市银河北路47号-25
    201081942502961472.bmp 735 焱麟房产 0316-2157268 
    廊坊市银河北路47-24号
    201073016394243334751.jpg 411 廊坊市源森房产经济有限公司 0316-2099689 
    廊坊市新世纪步行街第二大街南内街B座105号
    20107492126121408.jpg 727 旺达房产经纪服务有限公司 6860479 
    廊坊市五大街演艺广场E-103
    20107301515890221261.jpg 361 乾中达房地产 13373262269 
    廊坊市第二大街南内街A座100号
    201071711231666363701.jpg
      

  10.   

    你是想生成一个.xml文件,还是在浏览器显示xml(带标签)那样的内容啊?