簡體   English   中英

使用簡單的HTML DOM解析器刪除空白標簽

[英]Remove blank tags with simple HTML DOM parser

我有一個HTML輸入,其中包含許多空白的強標簽。 所以我想從html中刪除這些空白的強標簽。我使用了簡單的HTML DOM,但是它不起作用

foreach($html->find('strong') as $strong)
{

    if(trim($strong->innertext) == '')
    {
        echo 'blank strong';
    }
}

在上面的代碼中,我檢查了if條件是否沒有修剪功能,但仍然沒有成功。 如何從HTML代碼中刪除空白標簽或僅包含空格的標簽?

您沒有給出示例,但是可以說您具有此標記,可以使用outertext (順便說一句,我在手冊上也找不到某種removeChild() )。

$html_string = '
<div class="container">
<strong>Text1</strong>
<strong>Text2</strong>
<strong>Text3</strong>
<strong></strong>
<strong>Text5</strong>
</div>
';

$html = str_get_html($html_string);
foreach($html->find('strong') as $element) {
    if(trim($element->innertext) == '') {
        $element->outertext = '';
    }
}

echo htmlentities($html);

應該輸出:

<div class="container"> <strong>Text1</strong> <strong>Text2</strong> <strong>Text3</strong> <strong>Text5</strong> </div>

第四個<strong></strong>標記現在應該消失了。

您可以只使用jquery刪除空白標簽。

$(document).ready(function(){
    $('strong').each(function(){
        if($.trim($(this).html()) == ''){
            $(this).remove();
        }
    })
})

您也可以使用preg_replace刪除空的html標簽。

$html = "abc<strong></strong><p>dd</p><b>non-empty</b><strong>  ashish </strong><strong><a>click</a></strong><strong>   </strong><strong>test</strong>"; 
$pattern = "/<[^\/>]*>([\s]?)*<\/[^>]*>/"; // pattern for removing all empty tags
echo preg_replace($pattern, '', $html);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM