在Array2XML中添加根节点后的节点和属性

问题描述 投票:0回答:1

我正在使用此链接中的 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;
}

如何在项目循环之前添加此节点和属性?

非常感谢!

php xml nodes
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.