如何解决如何使用domcrawler替换特定元素的文本
我已经能够使用 Symfon dom-crawler 库来检索值并更改元素的属性和值,如下面的代码所示。
$doc = new DOMDocument;
$doc->loadHtml(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/pages/example.html'));
// closure => setter function
$crawler = new Crawler($doc);
$setText = function (object $templateData) use ($logger,$crawler,$doc) {
$crawler->filter($templateData->selector)
->each(function (Crawler $crawler) use ($logger,$templateData,$doc) {
foreach ($crawler as $node) {
//set attributes (classes)..
if($templateData->setClass){
/** @noinspection PHPPossiblepolymorphicInvocationinspection */
$node->setAttribute('class',$node->getAttribute('class'). ' '.$templateData->setClass);
}
//note: this just keeps adding new values
// to the node but I need a way to replace the
// text at once instead of just adding new values
//sets values (text only)
if($templateData->value){
//$node->parentNode->insertBefore($doc->createTextNode($value),$node);
$node->appendChild($doc->createTextNode($templateData->value));
}
}
});
return $templateData->result?$crawler->html():'result option not enabled!!';
};
有没有办法使用 symfony 的 dom-crawler 只更改或替换元素的文本..?
任何帮助将不胜感激。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。