xml功能不能正常工作

问题描述:

<?php 
    class prices{ 

     public $xml; 
     public $data; 
     public $xmlCount; 
     public $type_id; 

     function loadXml(){ 
      /* 
      * Checks for xml file errors 
      */ 

      libxml_use_internal_errors(true); 
      $xml = simplexml_load_file('./lib/xml/items.xml'); 
      if (!$xml){ 
       echo "Failed Loading XML\n"; 
       foreach(libxml_get_errors() as $error){ 
        echo "\t", $error->message; 
       } 
      } 

      $xmlCount = count($xml->row); 

      /* 
      * Should belong in xmlToSql, but here to test, this code works within this function 
      */ 
      echo '<pre>'; 
      echo count($xml->row); 
      echo $xml->row->{'type_id'}; 

      /* 
      * Code to test xml output 
      * echo "<br />"; 
      * print_r($xml); 
      * echo "<br />"; 
       *print_r($xml); 
      */ 
     } 

     function xmlToSql(){ 

      /* 
      * add sql code later, testing that xml is working correctly 
      */ 

      $this->loadXml(); 

      /* 
      * This does not work in this function 
      * $type_id = $xml->row->{'type_id'}; 
      */ 
      /* 
      * Should Display data 
      */ 
      echo $xml->row->{'type_id'}; 
      } 
     } 
?> 

你好,我是PHP新手。我目前正处于这个项目的早期阶段。xml功能不能正常工作

Currenlty停留在这部分,看了一些关于XML的教程,并且成功有限。

当我在同一个类中调用xmlToSql函数中的函数loadXml时,我无法使用xml数据。我已经加入注释,我上面的代码,我希望它说明了什么我想才达到的,我想用这个...

echo $xml->row->{'type_id'}; 
在功能xmlToSql

我假设我犯了一个愚蠢的错误。

我希望得到任何帮助

+0

什么是您的XML文件是什么样子?可能需要访问数组元素,如'echo $ xml-> row [0] - > {'type_id'};' – 2012-02-18 21:41:37

+0

该代码在载入xml文件的loadXml()中工作。 XML看起来像这样'' – 2012-02-18 22:08:49

+0

当我添加此'回声$ XML->行[0] - > { 'TYPE_ID'};''到xmlToSql()'我得到这个错误'尝试获取非对象的属性。看起来'$ xml'可扩展名不是被分配了xml数据。 – 2012-02-19 08:40:48

对不起已经错过了昨天的东西......很明显

当你调用$this->loadXml(),变量$xml不被存储到对象属性$this->xml,并超出范围时您尝试访问$xml->row

商店成$this->xml然后相应地访问它里面$this->xmlToSql()