通过查找包含表的span来设置表的字体大小?

时间:2017-04-20 13:59:31

标签: php regex

我需要有关正则表达式模式的帮助,它将替换/获取第一个字体大小" span"在每个表之前,并在表样式定义中使用跨越字体大小但跨度需要没有关闭标记,但尚未关闭span标记。

从:

<span style="font-size:10px;">
<table>...</table>
</span>

为:

<span style="font-size:10px;">
<table style="font-size:10px;">...</table>
</span>

它需要遍布每个&#34;表&#34;在某个范围内,字体大小做同样的事情。

1 个答案:

答案 0 :(得分:0)

请勿使用regex来解析html,使用html解析器,例如PHP: DOMDocument,即:

$html = <<< EOF
<span style="font-size:10px;">
<table>...</table>
</span>
EOF;

$dom = new DOMDocument(); # create DOMDocument
$dom->loadHTML($html); # Load $html into DOMDocument

foreach ($dom->getElementsByTagName('table') as $item) { # find all table elements in html

    $parent = $item->parentNode; # get parent node (<span>)
    $parent_style = $parent->getAttribute('style'); # get style attribute for parent node
    $item->setAttribute('style', $parent_style); # set $parent_style as style attribute
    echo $dom->saveHTML();
}