PHP simplexml_load_string () элементы внутри элементов

0

Я пытаюсь проанализировать некоторые XML-данные, используя php-функцию simplexml_load_string(), однако она не работает на элементах, где есть текст и последующие элементы. Вот пример данных:

<?xml version="1.0"?>
<KPPRINT>
<CURRENTDATE>31/01/2015</CURRENTDATE>
<CURRENTTIME>21:43</CURRENTTIME>
<HEADER>
   <ORDERNUMBER>CHECK NO: 69</ORDERNUMBER>
   <CHECKNUMBER>ORDER NO: 16</CHECKNUMBER>
   <REFTEXT>Party table</REFTEXT>
   <REFTEXT>LOCATION 4</REFTEXT>
</HEADER>
<ITEM>VK Ice<QTY>1</QTY><PRICE>&#163;0.03</PRICE><RECORD>57</RECORD><DEPT number="1" name="Wet Sales"/><GROUP number="5" name="FABs"/><CAT number="1" name="CATEGORY 1"/></ITEM>
<ITEM>Bramble<QTY>1</QTY><PRICE>&#163;0.45</PRICE><RECORD>241</RECORD><DEPT number="1" name="Wet Sales"/><GROUP number="10" name="Cocktails"/><CAT number="1" name="CATEGORY 1"/></ITEM>
<ITEM>Gran Seleccion Rioja<QTY>1</QTY><PRICE>&#163;19.95</PRICE><RECORD>225</RECORD><DEPT number="1" name="Wet Sales"/><GROUP number="9" name="Wines &amp; Champagnes"/><CAT number="1" name="CATEGORY 1"/></ITEM>
<TRAILER>
   <CLERK>Tom</CLERK>
   <MACHINE>S000-T1</MACHINE>
   <TIME>21:43</TIME>
   <CONSEC>000023</CONSEC>
</TRAILER>
</KPPRINT>

Это результат, который я получаю:

Array
(
    [CURRENTDATE] => 31/01/2015
    [CURRENTTIME] => 21:43
    [HEADER] => Array
        (
            [ORDERNUMBER] => CHECK NO: 69
            [CHECKNUMBER] => ORDER NO: 16
            [REFTEXT] => Array
                (
                    [0] => Party table
                    [1] => LOCATION 4
                )

        )

    [ITEM] => Array
        (
            [0] => Product 1
            [1] => Product 2
            [2] => Product 3
        )

    [TRAILER] => Array
        (
            [CLERK] => Tom
            [MACHINE] => S000-T1
            [TIME] => 21:43
            [CONSEC] => 000023
        )

)

Текст элемента есть, но другие элементы внутри него нет. Есть ли простая функция для функции или мне нужно разобрать всю строку вручную?

Теги:
xml-parsing
simplexml

1 ответ

0

Если он не работает с simplexml_load_string() вы должны попробовать работать с данными как рекурсивные объекты с DOMDocument, потому что он позволяет работать с дочерними узлами, и я думаю, что это не ограничивается. Пожалуйста, прочитайте следующие страницы: http://php.net/manual/en/class.domdocument.php http://www.w3schools.com/php/php_xml_dom.asp

Ещё вопросы

Сообщество Overcoder
Наверх
Меню