我想用这样的结构解析代码:
<p class=class1>
<i>.</i>
<b>..</b>
<a class=class2></a>
</p>
我需要获得<p>
的全部内容,但只有<a>
个标签。我需要保留所有其他标签,例如<i>
或<b>
我该怎么做?
现在我只有这段代码:
$content = $page->find('p[class=class1]');
foreach($content as $text)
{
$inner=$text->innertext();
}
能够找到<a>
个标签的整个内容。并且
答案 0 :(得分:1)
您可以循环子节点并检查a
。如果是outertext
,您可以将$data = <<<DATA
<p class=class1>
content
<div>test</div>
<i>.</i>
<b>..</b>
<a class=class2></a>
</p>
DATA;
$html = str_get_html($data);
foreach($html->find('p.class1') as $element) {
foreach ($element->children as $child) {
if ($child->nodeName() === "a") {
$child->outertext = '';
}
}
}
echo $html->save();
设置为空字符串:
试试这样:
<p class=class1> content <div>test</div> <i>.</i> <b>..</b> </p>
那会给你:
foreach ($html->find('p.class1 a') as $element) {
$element->outertext = '';
}
或者如果你想删除所有(嵌套)锚点:
BEGIN
dbms_output.put_line('Hello world');
END;
/