用特定的类替换UL标签

Yeh*_*lam 0 php regex preg-replace

我正在尝试用level0类替换所有ul标签,如下所示:

<ul>
    <li>Test
         <ul class="level0">
           ...
         </ul>
     </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

将被处理

<ul>
    <li>Test</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我试过了

$_menu = preg_replace('/<ul class="level0">(.*)<\/ul>/iU', "", $_menu); 
Run Code Online (Sandbox Code Playgroud)

但它没有用,有帮助吗?

谢谢.

叶海亚

Gor*_*don 6

我确信这是重复的,但无论如何,这里是如何用DOM做的

$dom = new DOMDocument;                          // init new DOMDocument
$dom->loadHTML($html);                           // load HTML into it
$xpath = new DOMXPath($dom);                     // create a new XPath
$nodes = $xpath->query('//ul[@class="level0"]'); // Find all UL with class
foreach($nodes as $node) {                       // Iterate over found elements
    $node->parentNode->removeChild($node);       // Remove UL Element
}
echo $dom->saveHTML();                           // output cleaned HTML
Run Code Online (Sandbox Code Playgroud)