2014-02-16 24 views
0

一個非對象我想創建XML文件類似的東西使用XML DOM解析器調用一個成員函數的createElement()在PHP

<dict> 
<key>outlineThickness</key>  <real>0.0</real> 
<key>repeat</key>  <false /> 
<key>rotation</key>  <string>no</string> 
</dict> 

,但我的代碼告訴我的錯誤 注意:未定義的變量:dom在第18行C:\ wamp \ www \ iwatermark \ xmlapi \ xmlapi.php 致命錯誤:調用C:\ wamp \ www \ iwatermark \ xmlapi \ xmlapi中的非對象的成員函數createElement() .php on line 18.

這就是我寫的

<?php 

class XMLApi 
{ 
    private $dom = null; 
    private $root = null; 
    public function __construct() 
    { 
     $dom = new DOMDocument("1.0"); 
     $dom->formatOutput = TRUE; 

     $root = $dom->createElement("dict"); 
     $dom->appendChild($root); 
    } 

    public function createNode($keyname, $keytext, $valuename, $valuetext) 
    { 
     $item = $dom->createElement($keyname); 
     $root->appendChild($item); 

     // create text node 
     $text = $dom->createTextNode($keytext); 
     $item->appendChild($text); 

     if($valuename == "true" || $valuename == "false") 
     { 
      $item = $dom->createElement($valuename); 
      $root->appendChild($item); 
     } 
     else 
     { 
      $item = $dom->createElement($valuename); 
      $root->appendChild($item); 

      // create text node 
      $text = $dom->createTextNode($valuetext); 
      $item->appendChild($text); 
     } 
     // create child element 


    } 

    public function ending() 
    { 
     $dom->save("test01.xml"); 
    } 
} 





$obj = new XMLApi(); 
$obj->createNode("key","outlineThickness","real","0.0"); 
$obj->createNode("key","repeat","false",""); 
$obj->createNode("key","rotation","string","no"); 
$obj->ending(); 




header("Location: "."test01.xml"); 

?> 
+1

在這個$ item = this-> dom-> createElement($ keyname)中獲取語法錯誤 – ponciste

回答

3

從類內部訪問類變量時,需要使用$this->dom

+0

在整個類中使用'$ this-> dom'而不是'$ dom'在createNode函數中。 – user3316523

+0

'$ this'不是'this'。當我們談論PHP時,請注意'$',不是嗎? – hek2mgl

+0

謝謝我的問題解決了。現在我明白了 – user3316523

相關問題