Symfony 2 Dom Crawler:如何在Element中只获取text()

VoT*_*Tue 8 symfony domcrawler

使用Dom Crawler只获取文本(没有标记).

$html = EOT<<<
  <div class="coucu">
    Get Description <span>Coucu</span>
  </div>
EOT;

$crawler = new Crawler($html);
$crawler = $crawler->filter('.coucu')->first()->text();
Run Code Online (Sandbox Code Playgroud)

输出:获取描述Coucu

我想输出(仅):获取描述

更新:

我找到了一个解决方案:(但这是非常糟糕的解决方案)

...
$html = $crawler->filter('.coucu')->html();
// use strip_tags_content in https://php.net/strip_tags
$html = strip_tags_content($html,'span');
Run Code Online (Sandbox Code Playgroud)

wkm*_*wkm 5

遇到同样的情况。我最终选择了:

$html = $crawler->filter('.coucu')->html();
$html = explode("<span", $html);
echo trim($html[0]);
Run Code Online (Sandbox Code Playgroud)


Sha*_*ley 3

根据您问题中的标准,我认为将 CSS 选择器修改为:$crawler = $crawler->filter('div.coucu > span')

从那里你可以去$span_text = $crawler->text();

或者简化事情:$text = $crawler->filter('div.coucu > span')->text();

text () 方法返回列表中第一项的值。