我在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的情况下从字符串中获取元素?
答案 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;