dongtuoao7987 2014-10-23 23:29
浏览 29
已采纳

如何让Tidy去除内联样式

I'm trying to use Tidy to clean up and transfer some content from an old system.

The system has a lot of inline style overrides which I want to drop completely (I don't want to convert them to classes, just drop them).

I'm using the following config:

$config = array(
    'indent'         => true,
    'output-xhtml'   => true,
    'drop-font-tags' => true,
    'clean' => true,
    'merge-spans'=> true,
    'drop-proprietary-attributes'=> true,
);

And run it like this:

$test = '<p><span style="font-size: 10px;">Some content goes here.</span></p>';

$tidy = new tidy;
$tidy->parseString($test, $config, 'utf8');
$body = $tidy->body();
var_dump($body->value);

But the output is still:

<body>
  <p>
    <span style="font-size: 10px;">Some content goes here.</span>
  </p>
</body>

How do I get Tidy to remove the style="font-size: 10px;" part as well, or drop the span tag altogether.

I can't see anything else in the documentation that would do that.

  • 写回答

1条回答 默认 最新

  • duanjiang7505 2014-10-23 23:36
    关注

    You could just remove the style attribute yourself:

    $test = '<p><span style="font-size: 10px;">Some content goes here.</span></p>';
    $dom = new DOMDocument;                 
    $dom->loadHTML($test);                  
    $xpath = new DOMXPath($dom);           
    $nodes = $xpath->query('//*[@style]');  // Find elements with a style attribute
    foreach ($nodes as $node) {              
        $node->removeAttribute('style');    // Remove style attribute
    }
    $test = $dom->saveHTML();
    $tidy = new tidy;
    $tidy->parseString($test, $config, 'utf8');
    $body = $tidy->body();
    var_dump($body->value);                  
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料