php内部でdom操作しようと思っています。
loadXMLを使いたいのですが、不完全なHTMLの場合、エラーとなります。
そこでloadHTML,saveHTMLを通すことで閉じタグ忘れなどを補完してから
loadXML,saveXMLを利用するようにしました。
しかしながら、<br /> が <br> となってしまいXML的にエラーとなります。
XHTMLではないので、このような結果になってしまうのかと思うのですが、
設定などで対応することは可能でしょうか?
よろしくお願いします。
php
1<?php 2$str = <<<EOF 3<p></p> 4<p> 5 <img src="test.gif"> 6 <br> 7<p> 8 <img src="test.gif" /> 9 <br /> 10<p>not closed 11EOF; 12 13$dom = new DOMDocument('1.0', 'UTF-8'); 14$dom->loadHTML($str); 15$html = $dom->saveHTML(); 16 17if( preg_match("/<body>(.*?)<\/body>/s", $html, $matches) ){ 18 $html = $matches[1]; 19} 20$html = htmlspecialchars($html); 21 22echo "<pre>"; 23echo $html; 24echo "</pre>";
閉じタグ忘れが補完されて出力されますが、<br/>が<br>に。
<p></p> <p> <img src="test.gif"><br></p><p> <img src="test.gif"><br></p><p>not closed</p>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。