如何按标签名称删除元素,其中包含所有元素

我想在php中使用dom removeChild函数来删除标记之间的所有内容。

我的xml看起来像

 text  text text   

现在我想删除包含其整个内部的标签。 我该怎么做呢? 我没有线索。 我试图使用我发现的唯一dom函数:removeChild。

删除后,它必须如下所示:

   text  

有没有php domfunction呢? 我在google或stackoverflow上找不到它。

 $dom = new DOMDocument; $dom->loadXML($xml); $dom->getElementsByTagName('root')->item(0) ->removeChild($dom->getElementsByTagName('remove')->item(0)); 

不过,这是非常具体的。 如果需要更多通用性,可以使用XPath:

 foreach ($xpath->query('//remove') as $node) { $node->parentNode->removeChild($node); } 

您可以使用XPath并通过XPath删除节点。

使用DOM和XPath从站点地图文件中删除节点

PHP SimpleXML – 删除xpath节点

Stackoverflow上有很多post。 也许你应该先在这里搜索。