以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  在php中利用相联数组生成XML文档时出错了,帮忙解决一下吧  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=70292)


--  作者:sunruina
--  发布时间:12/9/2008 3:36:00 PM

--  在php中利用相联数组生成XML文档时出错了,帮忙解决一下吧
程序是这样的,这个程序保存的文件名为array_to_xml.php。 其中函数class array_to_xml实现从相联数组到XML文档的转换,这部分没问题。运行时出错,出错出错信息为“无法显示 XML 页。
使用 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。


--------------------------------------------------------------------------------

XML 文档必须有一个顶层元素。处理资源 'http://localhost/array_to_xml.php' 时出错。 ”帮帮忙,谢谢了

<?xml version="1.0" encoding="gb2312" ?>

<?php
header("content-type:text/xml");

class array_to_xml
{
   var $xml;

   function _construct($array,$encoding="gb2312")
   {
     $this->$xml="";
     $this->$xml.=$this->_array_to_xml($array,0);
    }

 function _get($property_name)
 {
   if(isset($this->$property_name))
     { return ($this->$property_name);}
      else
     { return (NULL);}
     }

  function print_space($space_num)
  {
    $s="";
    for($i=0;$i<$space_num;$i++)
    $s.="-";
    return $s;
      }
     
  function _array_to_xml($array,$space_num)
  {
   $space_num++;
   foreach($array as $key=>$val)
   {
    $xml.=$this->print_space($space_num)."<font color=red>&lt;$key&gt;</font><br>";
    if(is_array($val))
    {
      $xml.=$this->_array_to_xml($val,$space_num);
   $xml.=$this->print_space($space_num)."<font color=red>&lt;/".$key."&gt;</font><br>";
        }
       else
    {
     $xml.=$this->print_space($space_num)."<b>$val</b><br>";
     $xml.=$this->print_space($space_num)."<font color=red>&lt;/".$key."&gt;</font><br>";
    }
      }
   return $xml;
  }
   }
   $arr=array(
   "My friends list"=>array(
          "My friends"=>array(
            "name"=>"Zhangsan",
           "no"=>"001",
       "company"=>"A company",
          "TEL"=>"12345678",
       "ADRESS"=>array(
              "street"=>"jingshi road",
        "city"=>"jinan",
                )
                             )   
                 )
             );

   $ax=new array_to_xml($arr);
   echo $ax->_get("xml");
   ?>


--  作者:Qr
--  发布时间:12/24/2008 9:48:00 AM

--  
XML 文档必须有一个顶层元素。
也就是说,你的代码没有给XML文档添加一个根元素。
--  作者:sunruina
--  发布时间:12/24/2008 9:27:00 PM

--  
我不知到怎么添加顶层元素,我也想过这方面的问题,麻烦你指点一下,多谢!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms