重複の可能性:
余分な/冗長な書式タグを削除して HTML をクリーンアップする
HTML コンポーザから生成された冗長なタグを削除しようとしています。これは明らかに空のものをすべて削除することはできません。私はしばらくそれを見てきましたが、理解できません。私が見逃しているものがあるかもしれません。
以下はコードです。どうもありがとうございました。
//Check for reduntant tags
function removeRedundantTags($pathname) {
$dom = new DOMDocument();
$dom->loadHTMLFile($pathname);
$allTags = $dom->getElementsByTagName('*');
for($i = 0; $i < $allTags->length; $i++) {
$currentTag = $allTags->item($i);
echo "Accessed Tags: ".$currentTag->nodeName.'<br>';
if($currentTag->hasChildNodes()) continue;
if($currentTag->nodeName == 'br' || $currentTag->nodeName == 'img' || $currentTag->nodeName == 'meta') continue;
if($currentTag->nodeValue == NULL) {
$parentNode = $currentTag->parentNode;
$oldChild = $parentNode->removeChild($currentTag);
echo "Removed Tags----: ".$oldChild->nodeName.'<br>';
}
}
echo "Redandant Removed<br>";
$dom->saveHTMLFile($pathname);
}
編集(出力を追加) スパン タグをクリーンアップしようとしているとしましょう (申し訳ありませんが、HTML コードを投稿できません) 半分を削除しているだけです..スパン タグが 2 つ存在するようで、1 つだけを削除し、同じことがすべての空のタグに適用されます
このコードを何百もの HTML ファイルに使用するため、たまたま非常に高速な DOM 構造を使用しています。そのため、回答の一部は役に立たない正規表現を使用しています。