【问题标题】:php DOMDocument class: node treephp DOMDocument 类:节点树
【发布时间】:2011-07-28 13:14:05
【问题描述】:

我想将 html 语法转换为节点树(<ul> 结构)。如何使用 DOMDocument 类执行此操作?

$html = '

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

';



结果:

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

【问题讨论】:

    标签: php html html-parsing domdocument


    【解决方案1】:
    <?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>
    

    【讨论】:

    • 为什么不使用 DOMDocument::load() ?
    • 函数参数中的这段代码( &$result = '' )是什么?
    • 添加 & 用于创建引用变量。
    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多