2016-07-19 2 views
0

私は今、私はそれが多次元配列DOMファイルの内容を取得するように多次元配列

array = (


     0 => array(

         name => Azeebee 
         category => sans-serif 

        ), 
     1 => array(

         name => Abel 
         category => sans-serif 

        ) 
); 

のように私はこの

$doc = new \DOMDocument(); 
    $doc->load('/fonts/font.xml'); 
    $nodelist = $doc->getElementsByTagName("font"); 
    $list = array(); 
    foreach ($nodelist as $n) 
    { 
     $value = $n->nodeValue; 
     $list[] = $value; 
    } 

    if (count($list) > 0) 
    { 
     echo $list[0]; 
    } 
を試してみましたが、欲しい

<fonts> 
    <font> 
     <name>ABeeZee</name> 
     <category>sans-serif</category> 
    </font> 
    <font> 
     <name>Abel</name> 
     <category>sans-serif</category> 
    </font> 
</fonts> 

fonts.xmlという名前のxmlファイルを持っています

上記のような多次元配列をxml構造体から取得するにはどうすればいいですか?何か案が?

答えて

1
$doc = new \DOMDocument(); 
$doc->loadXML($str); 
$nodelist = $doc->getElementsByTagName("font"); 
$list = array(); 
foreach ($nodelist as $n) 
{ 
    $temp = array(); 
    foreach($n->childNodes as $child) 
    // save all children but text node 
    if($child->nodeName != '#text') $temp[$child->nodeName] = $child->nodeValue; 
    $list[] = $temp; 
} 
print_r($list); 

demo