如何按标签名称删除元素,其中包含所有元素
我想在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。 也许你应该先在这里搜索。