simple_html_dom解析器:filter found tag

时间:2018-03-09 17:50:11

标签: php simple-html-dom

我想用这样的结构解析代码:

<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>个标签的整个内容。并且

1 个答案:

答案 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;
/