如何从HTML String中获取DIV元素的子元素?

时间:2014-01-20 16:21:00

标签: php html domdocument

我在PHP中有一个HTML字符串,例如:

<div class="my-class">
    <div id="el1">
        Some content...
    </div>
    <div id="el2">
        Some more content...
    </div>
    <div id="el3">
        Even more content...
    </div>
</div>

过度简化,但你明白了。我的真实世界数据实际上有5个子元素,分配了各种类和ID。仅使用类my-class,我需要从字符串中提取子元素(逐个或一次全部)和新字符串,所以我最终得到:

    <div id="el1">
        Some content...
    </div>
    <div id="el2">
        Some more content...
    </div>
    <div id="el3">
        Even more content...
    </div>

我尝试过使用各种DOMDocument和DOMXPath命令,这些命令主要来自SO的不同答案,但到目前为止还无法实现我的需要。不幸的是,我在PHP中使用DOM的经历非常有限。如何在没有父div的情况下从字符串中获取元素?

2 个答案:

答案 0 :(得分:2)

非常直接的解决方案(没有DomDocument,e.t):

$str = '<div class="my-class"><div id="el1">....</div>';

$mask = '<div class="my-class">';
$str = str_replace($mask,'',$str);
$str = substr($str,0,strlen($str)-6);
echo $str;

答案 1 :(得分:0)

试试这个......

$str = '<div class="my-class"><div id="el1">....</div>';
$mask = '/(<div class="my-class">)|(</div>)/';
$str = preg_replace($mask,'',$str);
echo $str;