dpp80346 2016-07-19 11:21
浏览 30

获取dom文件内容作为多维数组

i have a xml file named fonts.xml

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

now i want it like an multidimensional array

array = (


         0 => array(

                       name => Azeebee
                       category => sans-serif

                     ),
         1 => array(

                      name => Abel
                      category => sans-serif

                    )
 );

i have tried this

$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];
    }

how can i get a multidimension array like this from the above xml structure! Any idea?

  • 写回答

1条回答 默认 最新

  • duandai0373 2016-07-19 11:32
    关注
    $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

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料