我正在使用this link中的Array2XML,效果很好!
但是我需要在输出之前添加一些节点。我需要我的结构是这样的:
<clients>
<client> -->Need to add
<id>myid</id> -->Need to add
<name>name</name> -->Need to add
<items> -->Need to add
<item>
<title>itemtitle</title>
<date>itemdate</date>
</item>
</items>
</client>
<clients>
但我能得到的是:
<clients>
<item>
<title>itemtitle</title>
<date>itemdate</date>
</item>
<clients>
ROOT NODE clients
和节点item
我可以输出,但是如何添加节点client
和属性id
,name
以及子节点节点items
之前的item
?
这是php函数,我想我需要进行更改,但没有成功:
public static function &createXML($node_name, $arr=array()) {
$xml = self::getXMLRoot();
$xml->appendChild(self::convert($node_name, $arr));
self::$xml = null; // clear the xml node in the class for 2nd time use.
return $xml;
}
我试过这个,但它不起作用......
public static function &createXML($node_name, $arr=array()) {
$xml = self::getXMLRoot();
$clientname='client';
$client = $xml->createElement($clientname);
$xml->appendChild(self::convert($node_name, $arr));
self::$xml = null; // clear the xml node in the class for 2nd time use.
return $xml;
}
如何在项目循环之前添加此节点和属性?
非常感谢!
答案 0 :(得分:0)
好吧,经过一番头疼之后,我得到了它......
我只需要编辑到这个:
public static function &createXML($node_name, $arr=array()) {
$xml = self::getXMLRoot();
$clients = $xml->createElement("clients");
$xml->appendChild($clients);
$client = $xml->createElement("client");
$clients->appendChild($client);
$id = $xml->createElement('id', 'myid');
$client->appendChild($id);
$name = $xml->createElement('name', 'myname');
$client->appendChild($name);
$client->appendChild(self::convert($node_name, $arr));
self::$xml = null; // clear the xml node in the class for 2nd time use.
return $xml;
}