За последние 24 часа нас посетили 17598 программистов и 1722 робота. Сейчас ищут 923 программиста ...

Помогите переделать структуру

Тема в разделе "Сделайте за меня", создана пользователем YouAnus, 20 дек 2017.

  1. YouAnus

    YouAnus Новичок

    С нами с:
    18 дек 2017
    Сообщения:
    4
    Симпатии:
    0
    Суть моей просьбы заключается вот в чём: у меня есть код для записи данных в XML:
    PHP:
    1. $xml=new DOMDocument("1.0",'utf-8');
    2.     $student=$xml->createElement("student");
    3.     $xml->appendChild($student);
    4.  
    5.     $data_element = $xml->createElement('data');
    6.     foreach ($data as $key => $value) {
    7.         foreach ($value as $k => $v) {
    8.             $el = $xml->createElement('column', $v);
    9.             $attr = $xml->createAttribute('name');
    10.             $attr->value = $k;
    11.             $el->appendChild($attr);
    12.             $data_element->appendChild($el);
    13.         }
    14.     }
    15.     $student->appendChild($data_element);
    16.  
    17.     foreach ($json as $key => $value) {
    18.         $domElement = $xml->createElement('item');
    19.  
    20.         $domAttribute = $xml->createAttribute('ID');
    21.         $domAttribute->value = trim(strip_tags($value[0]));
    22.         $domElement->appendChild($domAttribute);
    23.  
    24.         $domAttribute = $xml->createAttribute('count');
    25.         preg_match_all('/<span[^>]*>(.*?)<\/span>/', $value[3], $matches);
    26.  
    27.         $domAttribute->value = intval(trim($matches[1][0]));
    28.         $domElement->appendChild($domAttribute);
    29.  
    30.         $name_value=$xml->createTextNode(trim(strip_tags($value[1])));
    31.         $domElement->appendChild($name_value);
    32.  
    33.         $domAttribute = $xml->createAttribute('price');
    34.         $domAttribute->value = intval($value[2]);
    35.         $domElement->appendChild($domAttribute);
    36.  
    37.  
    38.         $student->appendChild($domElement);
    39.     }
    40.  
    41.     $xml->formatOutput=true;
    42.     $date = time();
    43.     $filename = ROOT . "/orders/student-" . $date . ".xml";
    44.     $xml->save($filename);
    45.     return $filename;
    46. }

    И результат кода:

    Код (Text):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <student>
    3.   <data>
    4.     <column name="fio">Proverka</column>
    5.     <column name="city">Proverka</column>
    6.     <column name="phone">Proverka</column>
    7.     <column name="email">Proverka</column>
    8.   </data>
    9.   <item ID="ID002" count="1" price="5" name="Мультифора(поштучно)"/>
    10.   <item ID="ID001" count="1" price="200" name="Пачка бумаги"/>
    11.   <item ID="ID003" count="1" price="25" name="Папка"/>
    12. </student>
    Мне же нужно переписать код так, что бы структура XML выглядела вот таким образом:
    Код (Text):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <student>
    3.   <data>
    4.       <column name="name">Мультифора</column>
    5.       <column name="count">1</column>
    6.       <column name="price">5</column>
    7.     <column name="fio">ФИО</column>
    8.     <column name="city">ГОРОД</column>
    9.     <column name="phone">тел.</column>
    10.     <column name="email">email</column>
    11.   </data>
    12.   <data>
    13.       <column name="name">Мультифора</column>
    14.       <column name="count">1</column>
    15.       <column name="price">5</column>
    16.     <column name="fio">ФИО</column>
    17.     <column name="city">ГОРОД</column>
    18.     <column name="phone">тел.</column>
    19.     <column name="email">email</column>
    20.   </data>
    21.   <data>
    22.       <column name="name">Мультифора</column>
    23.       <column name="count">1</column>
    24.       <column name="price">5</column>
    25.     <column name="fio">ФИО</column>
    26.     <column name="city">ГОРОД</column>
    27.     <column name="phone">тел.</column>
    28.     <column name="email">email</column>
    29.   </data>
    30. </student>