Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > чтение из xml в массив


Автор: grider 7.5.2008, 20:05
Помоги как из этого xml файла

Код

<?xml version="1.0"?>
<form>
    <element name="phonenumber" type="char" isnull="0"></element>
    <element name="summa" type="number" isnull="0"></element>
</form>



получить такой массив
Код

Array (
            [0] => Array ( 
                                   [name] => phonenumber 
                                   [type]=>char
                                   [isnull]=>0
                                 )
            [1] => Array ( 
                                   [name] => summa 
                                   [type]=>number
                                   [isnull]=>0
                                 )  
         ) 

Автор: boogi 9.6.2008, 00:32
Код

<?php
    $element_names = array('element');
    $element_attributes = array('name', 'type', 'isnull');
    $result = array();

    $xml = new DOMDocument();
    $xml -> load('xml_file.xml');
    $counter = 0;
    for ($i = 0; $i < sizeof($element_names); $i++) {
        $nl = $xml -> documentElement -> getElementsByTagName($element_names[$i]);
        for ($j = 0; $j <  $nl -> length; $j++) {
            $element = $nl -> item( $j );
            for ($k = 0; $k < sizeof($element_attributes); $k++){
                $result[$counter][$element_attributes[$k]] = $element -> getAttributeNode($element_attributes[$k]) -> value;
            }
            $counter++;
        }
    }
?>

Автор: gta4kv 9.6.2008, 08:09
boogi, ваш код ужасен

Автор: boogi 9.6.2008, 10:27
Цитата(gta4kv @ 9.6.2008,  08:09)
boogi, ваш код ужасен

чем?

Автор: gta4kv 9.6.2008, 10:33
boogi, всем. 
+ я думаю не стоит писать за человека весь код. с такими наворотами , когда все можно проще сделать

Автор: boogi 9.6.2008, 10:36
Цитата(gta4kv @ 9.6.2008,  10:33)
boogi, всем. 
+ я думаю не стоит писать за человека весь код. с такими наворотами , когда все можно проще сделать

Какими наворотами? О чем ты говоришь?
Это кстати самый простое, в понимании, решение проблемы. 

Автор: sad8c 11.7.2008, 08:11
На самом деле чтение иксмл в массив куда рациональней осуществлять посредством SimpleXML. DOM для этого черезчур громоздкий.

Автор: Lesnoy_chelovek 11.7.2008, 12:31
Используйте simplexml_load_file - сама простая и удобная функция.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)