【发布时间】:2016-05-13 08:09:48
【问题描述】:
我构建了一个基本的 xml 类(使用简单的 xml),到目前为止,我构建了简单的 xml 节点。
现在我想创建一个函数,在 foreach 中生成特定数量的节点,我在参数中指定。
现在看起来像这样:
class Xml
{
private $data = "";
protected $xml = "";
protected $xmlManager = "";
protected $menus = "";
protected $xmlMenus = "";
public function __construct($data = [])
{
$this->data = $data;
$this->xml = new \SimpleXmlElement('<test></test>');
$this->setMenus();
return $this->xml;
}
private function setMenus()
{
$this->xmlMenus = $this->xmlManager->addChild('menus');
}
public function setMenuNode($parameter)
{
$this->data->menu = []
foreach ($this->data->menus as $menuKey => $menuValue)
{
$this->xmlMenu = $this->xmlMenus->addChild('menu');
$menueValue->addAttribute($param1, $param2, $param3);
$menueValue->addAttribute($param1, $param2, $param3);
}
}
}
以后我想这样称呼它
Xml->setMenuNode($param1, $param2, $param3);
应该创建 3 个菜单节点。
我的 xml 稍后应该看起来像这样。
<?xml version="1.0"?>
<menus>
<menu id="1" entry="title">
...
</menu>
<menu id="2" entry="title2">
...
</menu>
<menu id="3" entry="title2">
...
</menu>
</menus>
</dvd>
我不确定如何以一种好的方式管理它。
【问题讨论】:
-
你不能从构造函数返回值。
-
你到底是什么意思
-
在删除构造函数之前,您在其中调用了
return $this->xml;。那是行不通的。现在没有构造函数,你的属性都是空字符串,但用作对象。 -
我正在构建一个 Xml 对象并像这样调用它
echo "<pre>".print_r($xml,true)."</pre>";只是为了查看结果,但是你知道如何解决我的问题吗:)