2012-02-18 216 views
2
<?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

回答

1

對不起已經錯過了昨天的東西......很明顯

當你調用$this->loadXml(),變量$xml不被存儲到對象屬性$this->xml,並超出範圍時您嘗試訪問$xml->row

商店成$this->xml然後相應地訪問它裏面$this->xmlToSql()