Heim >Backend-Entwicklung >PHP-Tutorial >php读取xml有关问题

php读取xml有关问题

WBOY
WBOYOriginal
2016-06-13 10:00:46790Durchsuche

php读取xml问题
在网上下了个例子,代码如下但是运行却没有显示,只显示了 "名字: "后面就什么也没有了,是不是哪里还需要配置一下呀,请大家帮忙解决!!
$parser   =   xml_parser_create();   //创建一个parser编辑器
xml_set_element_handler($parser,   "startElement ",   "endElement ");//设立标签触发时的相应函数   这里分别为startElement和endElenment
xml_set_character_data_handler($parser,   "characterData ");//设立数据读取时的相应函数
$xml_file= "1.xml ";//指定所要读取的xml文件,可以是url
$filehandler   =   fopen($xml_file,   "r ");//打开文件

 


while   ($data   =   fread($filehandler,   4096))  
{
        xml_parse($parser,   $data,   feof($filehandler));
}//每次取出4096个字节进行处理

fclose($filehandler);
xml_parser_free($parser);//关闭和释放parser解析器


$name=false;
$position=false;
function   startElement($parser_instance,   $element_name,   $attrs)                 //起始标签事件的函数
  {
      global   $name,$position;    
      if($element_name== "NAME ")
      {
      $name=true;
      $position=false;
      echo   "名字: ";
    }
    if($element_name== "POSITION ")
      {$name=false;
      $position=true;
      echo   "职位: ";
    }
}

function   characterData($parser_instance,   $xml_data)                                     //读取数据时的函数  
{
      global   $name,$position;
      if($position)
        echo   $xml_data. "
";
        if($name)
          echo   $xml_data. "
";
}

function   endElement($parser_instance,   $element_name)                                   //结束标签事件的函数
{
  global   $name,$position;  
$name=false;
$position=false;    
}

?>

 

xml文件代码如下:

 





张三
经理



李四
助理





------解决方案--------------------
有个加过密的xml类,可以把任何xml读成数组的,里面也是用PHP内置函数实现的。要发给你
------解决方案--------------------
估摸着你的XML是GB2312编码的,XML默认是UTF-8的。你把你的XML文件改成UTF8的试试。
------解决方案--------------------
源文件是对的,在PHP4下面测试是正确的
------解决方案--------------------
编码是utf-8的。不知在gb2312环境有没影响
------解决方案--------------------
当然有影响,如果是utf-8的,你想用在gb2312下,最好转码
------解决方案--------------------

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn