Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DOMElement, получить по ID и заменить на другой 
V
    Опции темы
NumLock
Дата 10.4.2008, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.7.2006
Где: Иркутск

Репутация: нет
Всего: нет



Проблема в следующем:
Есть HTML с тегами, некоторым из которых присвоен ID. Нужно из скрипта выдергивать тег по ID и заменять его на другой. К примеру:

Код

<!-- файл index.html -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>HTML для примера</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  </head>
<body>
  <table ID="DATA">
    <!-- Это "дырка" под контент -->
  </table>
</body>
</html>


Я делаю так:
Код

$DOMDocument = new DOMDocument();
$DOMDocument->loadHTMLFile('index.html');
$DOMElement = $DOMDocument->getElementById('DATA');
$DOMElement->textContent = 'Какой-то текст для примера';
$DOMDocument->replaceNode($DOMElement, $DOMDocument->getElementById('DATA'));
echo $DOMDocument->saveHTML;


Но на строчке 5 вылезает исключение, которое приводит к Fatal Error всего скрипта... Как можно решить эту задачу с помощью встроенного в PHP5 DOM?
PM MAIL ICQ Skype Jabber   Вверх
NumLock
Дата 10.4.2008, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.7.2006
Где: Иркутск

Репутация: нет
Всего: нет



Уже разобрался с проблемой: нужно было вызывать функцию replaceChild у непосредственного предка. заменяемого DOMNode, т.е. примерно так: 

Код

$DOMDocument = new DOMDocument('1.0', 'WINDOWS-1251');
$DOMDocument->loadHTMLFile('index.html');
$DOMElement = $DOMDocument->getElementById('DATA');
$DOMElement->textContent = 'Какой-то текст для примера';
$Parent = $DOMDocument->getElementById('DATA')->parentNode;
$Parent->replaceNode($DOMElement, $DOMDocument->getElementById('DATA'));
echo $DOMDocument->saveHTML;

PM MAIL ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0390 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.