Tôi có đối tượng DOM có đánh dấu HTML được tải. Tôi đang cố gắng để thay thế tất cả các thẻ nhúng mà trông như thế này:PHP DOM thay thế phần tử bằng phần tử mới
<embed allowfullscreen="true" height="200" src="path/to/video/1.flv" width="320"></embed>
Với một thẻ như thế này:
<a
href="path/to/video/1.flv"
style="display:block;width:320px;height:200px;"
id="player">
</a>
Tôi đang gặp rắc rối figuring this out và tôi không muốn sử dụng biểu thức chính quy cho điều này. Ông có thể giúp tôi không?
EDIT:
Đây là những gì tôi có cho đến nay:
// DOM initialized above, not important
foreach ($dom->getElementsByTagName('embed') as $e) {
$path = $e->getAttribute('src');
$width = $e->getAttribute('width') . 'px';
$height = $e->getAttribute('height') . 'px';
$a = $dom->createElement('a', '');
$a->setAttribute('href', $path);
$a->setAttribute('style', "display:block;width:$width;height:$height;");
$a->setAttribute('id', 'player');
$dom->replaceChild($e, $a); // this line doesn't work
}
Không có thời gian để viết lên một câu trả lời ngay bây giờ, nhưng hãy kiểm tra http://www.php.net/manual/en/class.domdocument.php –
Tôi đã xem nhưng tôi không thể tìm ra. Tôi đã cập nhật câu trả lời của tôi với mã tôi đã có nhưng dòng cuối cùng được cho là để chuyển đổi các yếu tố không hoạt động. –
Xem câu hỏi tương tự: http://stackoverflow.com/q/17864378 –