我想删除domdocument html中的元素标记。
我有类似
的东西this is the <a href='#'>test link</a> here and <a href='#'>there</a>.
我想将我的html更改为
this is the test link here and there.
我的代码
$dom = new DomDocument();
$dom->loadHTML($html);
$atags=$dom->getElementsByTagName('a');
foreach($atags as $atag){
$value = $atag->nodeValue;
//I can get the test link and there value but I don't know how to remove the a tag.
}
感谢您的帮助!
答案 0 :(得分:1)
您正在寻找一种名为DOMNode::replaceChild()
的方法。
要利用这一点,您需要创建DOMText
$value
(DOMDocument::createTextNode()
)的getElementsByTagName
以及$atags = $dom->getElementsByTagName('a');
while ($atag = $atags->item(0))
{
$node = $dom->createTextNode($atag->nodeValue);
$atag->parentNode->replaceChild($node, $atag);
}
返回自我更新列表,因此当您更换时第一个元素,然后你去第二个元素,没有第二个元素,只剩下一个元素。
相反,您需要在第一项上花一些时间:
{{1}}
这些方面应该做的事情。
答案 1 :(得分:0)
您可以使用strip_tags
- 它应该按照您的要求进行操作。
<?php
$string = "this is the <a href='#'>test link</a> here and <a href='#'>there</a>.";
echo strip_tags($string);
// output: this is the test link here and there.