【问题标题】:domdocument get content within a paragraph, not hyperlinkdomdocument 获取段落内的内容,而不是超链接
【发布时间】:2012-12-31 09:56:50
【问题描述】:

我正在使用 DOMDocument 遍历 HTML 以获取 <p> 标记内的内容。但与此同时,我不想从<p> 标签内的href、div 和span 信息中获得任何信息。我应该如何从下面的代码着手:

$doc = new DOMDocument();
$doc->loadHTML($data);
$pas = $domDoc->getElementsByTagName("p");
foreach ($pas as $pa)
    $pa->textContent

我可以进一步从$pas 为div、span、href 做一个DOMDocument getElementsByTagName() 吗?还是我需要做一个正则表达式?

【问题讨论】:

  • 为了澄清,您想跳过p标签中的div、span和a标签的内容吗?
  • 欢迎来到 Stack Overflow。问题编辑器接受一些 HTML 标签来提供格式,因此当您需要插入文字标签时,您需要使用 {} 工具栏按钮。这次我给你修好了。编辑框下方有一个预览面板,您可以在其中查看问题的外观。此外,您还可以使用键盘的 Shift 键获取大写字母。
  • 嗨 alvarco,感谢您的帮助。嗯,我实际上做了 html 格式。也许在我在移动设备上编辑后它被删除了

标签: php domdocument


【解决方案1】:

你可以这样使用

$doc = new DOMDocument();
$doc->loadHTML($data);
$rootElement = $document->documentElement;//selecting document root

$pTags = $rootElement->getElementsByTagName("p");//selecting all p tags from DOM
$pas = $pTags->item(0);// selecting first p tag

foreach ($pas as $pa) {
    if($pa->nodeName == 'div' || $pa->nodeName == 'span' || $pa->nodeName == 'a')
    continue;
    // do everything else here
}

【讨论】:

  • 嗨,我刚试过。它不工作。我试图做一个解决方法,遍历子节点,但它也没有帮助。基本上它在 string 中的返回字符串我不需要
  • 它应该可以工作,发布你的 html 问题,以便我可以测试它
  • 嘿,我正在考虑改用 domxpath。我目前正在努力研究如何查询仅包含 、

    和

猜你喜欢
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 2020-04-21
  • 2014-11-03
相关资源
最近更新 更多