2012-02-18 22 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 oopを初めて使っています。私は現在、このプロジェクトの初期段階にあります。xml関数が機能しない

この部分にはCurrenltyが貼り付けられており、xmlに関するチュートリアルをいくつか見ており、成功は限られていました。

xmlToSql関数で同じクラス内の関数loadXmlを呼び出すと、xmlデータを使用できません。 ...関数xmlToSqlで

echo $xml->row->{'type_id'}; 

私は上記の私のコードにメモを追加したと私は私がこれを使用したい、それは私がachiveしようとしているかを示したいと考えています。

私は愚かな間違いをしています。

私は昨日何かを明らかに見逃している申し訳ありません任意のヘルプ

+0

何あなたのXMLファイルは次のように見えますか?おそらく 'echo $ xml-> row [0] - > {'type_id'};' –

+0

のような配列要素にアクセスする必要があります。コードはxmlファイルがロードされるloadXml()で動作します。 I [0]この 'エコー$ XML->行を追加する場合、XMLこの' ' –

+0

ように見える - > { 'TYPE_ID'};' xmlToSql() 'と'私はこれを取得しますエラー '非オブジェクトのプロパティを取得しようとしています'。 '$ xml' varableにxmlデータが割り当てられていないように見えます。 –

答えて

1

をいただければ幸いです...

あなたが$this->loadXml()を呼び出すと、変数$xmlは、オブジェクトのプロパティ$this->xmlに記録され、これがスコープから外れていません$xml->rowにアクセスしようとしました。その後、$this->xml

ストアそれと$this->xmlToSql()内でそれに応じてアクセスします。

関連する問題