2016-12-10 5 views
1

Я использую Array2XML от 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 УЗЕЛ clients и узел item я могу выход, но как я могу добавить узел client и atributes 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

Хорошо, я получил его после того, как какой-то голову чешет ...

мне просто нужно изменить так:

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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^