Я думаю DOMDocument::getElementById
не будет работать в вашем случае: (цитирование)
Чтобы эта функция работала, вы будете
нужно либо установить некоторые атрибуты идентификатора
с DOMElement::setIdAttribute
или
DTD, который определяет атрибут
типа ID.
В последнем случае вы
нужно будет проверить ваш документ
с DOMDocument::validate
или
DOMDocument->validateOnParse
до
используя эту функцию.
Решение, которое может сработать, - это использовать запрос XPath для извлечения искомого элемента.
Прежде всего, давайте загрузим часть HTML, как вы это сделали вначале:
$dom=new domDocument;
$dom->loadHTML($html);
var_dump($dom->saveHTML());
var_dump
здесь только для того, чтобы доказать, что часть HTML была успешно загружена - судя по ее выводу, она имеет.
Затем создайте экземпляр класса DOMXPath
и используйте его для запроса элемента, который вы хотите получить:
$xpath = new DOMXpath($dom);
$result = $xpath->query("//*[@id = 'double']");
$keepme = $result->item(0);
Теперь нам нужно элемент, который вы хотите; -)
Но для того, чтобы внедрить его HTML-контент в другой HTML-сегмент, мы должны сначала получить его HTML-контент.
Я не помню ни одного "легкого" способа сделать это, но что-то вроде этого могло бы помочь:
$tempDom = new DOMDocument();
$tempImported = $tempDom->importNode($keepme, true);
$tempDom->appendChild($tempImported);
$newHtml = $tempDom->saveHTML();
var_dump($newHtml);
И ... У нас есть содержимое HTML вашего double
<div>
:
string '<div id="double">
<img src="http://images.example.com/double.gif" width="300" height="27" border="0" alt="" title="">
</div>
' (length=125)
Теперь вам просто нужно делать с ней все, что вы хотите; -)