2011-04-03 68 views
0

我想将html语法转换为节点树(<ul>结构)。我如何使用DOMDocument类来做到这一点?php DOMDocument类:节点树

$html = ' 

    <div> 
     <p> 
      <a> 
     </p> 
    </div> 

'; 



结果:

<ul> 
    <li> 
     div 
     <ul> 
      <li> 
       p 
       <ul> 
        <li>a</li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 

回答

0
<?php 
$xml = '<div> 
     <p> 
      <a>#</a> 
     </p> 
    </div> 
'; 

function xml2array($xml,&$result = '') { 
    foreach($xml->children() as $name => $xmlchild) { 
     xml2array($xmlchild,$result); 
    } 
    $result = "<ul><li>".$xml->getName().$result."</li></ul>"; 
} 
$result=''; 
$dd = xml2array(simplexml_load_string($xml),$result); 
echo "<pre>"; 
print_r($result); 

输出

<ul> 
    <li> 
     div 
     <ul> 
      <li> 
       p 
       <ul> 
        <li> 
         a 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 
+0

这是伟大的,非常感谢你! – Zebra 2011-04-03 09:40:25

+0

为什么不'使用DOMDocument :: load()? – dynamic 2011-04-03 09:46:27

+0

函数参数中的这段代码(&$ result ='')是什么? – Zebra 2011-04-03 09:54:08