PHP - Как я могу прочитать все атрибуты элементов XML, используя simpleXML? - PullRequest
1 голос
/ 23 января 2011

Я делаю скрипт, который читает переданный файл XML и отображает исходный код.Я почти сделал это, но атрибуты предметов ... Я не могу найти способ их поймать.Вот код:

$xml = simplexml_load_file("path/to/file.xml");

    showTree($xml->children(), 0);

    function showTree($value, $i) {

        if($value == '') {

            foreach($value as $name2 => $value2) {

                echo str_repeat('--', $i)." <$name2> \n";
                    showTree($value2, ($i+1));
                echo str_repeat('--', $i)." </$name2> \n";
            }

        } else { echo str_repeat('--', $i)." ".trim($value)."\n"; }

    } // end: function  

Как я уже сказал, он работает нормально, но не отображает атрибуты, например:

<item id=2>Item</item>

возвращает только:

<item>Item</item>

Спасибо за любые ответы, Майк.

Ответы [ 2 ]

1 голос
/ 23 января 2011

Если я не прочитал ваш код, возможно, что-то вроде этого должно быть правильным

$xml = simplexml_load_file("path/to/file.xml");

    showTree($xml->children(), 0);

    function showTree($value, $i) {

        if($value == '') {

            foreach($value as $name2 => $value2) {

              $attribsStr = '';
              foreach($value2->attributes() as $attribName => $attribValue) {
                $attribsStr .= $attribName . '="' . $attribValue . '"' . ' ';
              }

              echo str_repeat('--', $i)." <$name2 $attribsStr> \n";
                showTree($value2, ($i+1));
              echo str_repeat('--', $i)." </$name2> \n";
            }

        } else { echo str_repeat('--', $i)." ".trim($value)."\n"; }

    } // end: function  
1 голос
/ 23 января 2011
...