在php中的非对象上调用成员函数createElement()

时间:2014-02-16 20:33:45

标签: php xml

我想使用XML DOM Parser

创建类似的xml文件
<dict>
<key>outlineThickness</key>     <real>0.0</real>
<key>repeat</key>       <false />
<key>rotation</key>     <string>no</string>
</dict>

但我的代码显示错误 注意:未定义的变量:第18行的C:\ wamp \ www \ iwatermark \ xmlapi \ xmlapi.php中的dom 致命错误:在第18行的C:\ wamp \ www \ iwatermark \ xmlapi \ xmlapi.php中的非对象上调用成员函数createElement()。

这就是我写的

<?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 个答案:

答案 0 :(得分:3)

在从类中访问类变量时,您需要使用$this->dom