За последние 24 часа нас посетили 22433 программиста и 1053 робота. Сейчас ищут 674 программиста ...

php и SimpleXML

Тема в разделе "PHP для новичков", создана пользователем savsoft, 24 фев 2018.

Метки:
  1. savsoft

    savsoft Активный пользователь

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Всем привет.

    Подскажите, как правильно разобрать XML файл с помощью SimpleXML.

    А именно второй уровень. Есть простой файл с заказами и строками заказов. Заказы я вычитываю, а вот как вычитать строки не понимаю. Вот файл

    Код (Text):
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <orders date="2018-02-14">
    3.   <order id="1">
    4.     <name>Иванов</name>
    5.     <phone>1234567890</phone>
    6.     <email/>
    7.     <date>14.02.18</date>
    8.     <items>
    9.       <item id="1">
    10.         <name>Товар 1</name>
    11.         <quantity>2</quantity>
    12.       </item>
    13.       <item id="5">
    14.         <name>Товар 5</name>
    15.         <quantity>2</quantity>
    16.       </item>
    17.       <item id="7">
    18.         <name>Товар 7</name>
    19.         <quantity>2</quantity>
    20.       </item>
    21.       <item id="3">
    22.         <name>Товар 3</name>
    23.         <quantity>2</quantity>
    24.       </item>
    25.       <item id="2">
    26.         <name>Товар 2</name>
    27.         <quantity>2</quantity>
    28.       </item>
    29.     </items>
    30.   </order>
    31.   <order id="2">
    32.     <name>Петров</name>
    33.     <phone>1234567890</phone>
    34.     <email>mylo@mylo.com</email>
    35.     <date>14.02.18</date>
    36.     <items>
    37.       <item id="3">
    38.         <name>Товар 3</name>
    39.         <quantity>2</quantity>
    40.       </item>
    41.       <item id="2">
    42.         <name>Товар 2</name>
    43.         <quantity>2</quantity>
    44.       </item>
    45.     </items>
    46.   </order>
    47. </orders>
    Вот мой код

    Код (Text):
    1.  <?php
    2. $xml=simplexml_load_file("111.xml") or die("Error: Cannot create object");
    3. //print_r($xml);
    4. foreach ($xml as $key => $order) {
    5.     echo $order['id'] . "<br>";
    6.     echo $order->name . "<br>";
    7.     echo $order->phone . "<br>";
    8.     echo $order->email . "<br>";
    9.      print_r($order->items);        // Как это вычитать построчно, атрибут и содержимое?
    10.     echo "<br>";
    11. }
    12. ?>
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Так же в цикле
    PHP:
    1. foreach($order->items->item as $item) {
    2.        echo 'ID: ',  $item->attributes()->id, '; ', $item->name, ', кол-во: ', $item->quantity , PHP_EOL;
    3. }
     
    savsoft нравится это.
  3. savsoft

    savsoft Активный пользователь

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Спасибо!