[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: получить DOMDocument
rodzewich
Привет всем!

DOMElement наследуется от DOMNode и у DOMNode есть свойство DOMDocument, но в DOMElement его нет.

Вопрос в следующем ...
Как мне получить DOMDocument имея лишь DOMElement?



Спустя 2 часа, 33 секунды (12.05.2010 - 22:19) Raito-kun написал(а):
если я правильно понял, вы хотите при помощи объекта наследуемого класса извлечь свойство родительского? не могу сказать точно, но кажется это невозможно. родительский класс может обращаться к свойствам дочернего, но наоборот насколько я знаю-нельзя.

Спустя 8 минут, 37 секунд (12.05.2010 - 22:27) Jaska написал(а):
Добавить защищенный метод DOMNode который будет возвращать свойство DOMDocument. Все должно успешно вызываться из DOMElement'а

Спустя 6 минут, 9 секунд (12.05.2010 - 22:33) Jaska написал(а):
Цитата (Raito-kun @ 12.05.2010 - 19:19)
если я правильно понял, вы хотите при помощи объекта наследуемого класса извлечь свойство родительского? не могу сказать точно, но кажется это невозможно. родительский класс может обращаться к свойствам дочернего, но наоборот насколько я знаю-нельзя.

class B extends A {
function B(параметры_для_A, другие_параметры)
{ $this->A(параметры_для_A);
инициализируем другие поля B
}
function TestB() { ... }
function Test() { ... }
}


Цитата
Ключевое слово extends говорит о том, что создаваемый класс является лишь "расширением" класса A, и не более того. То есть B содержит те же самые свойства и методы, что и A, но, помимо них и еще некоторые дополнительные, "свои".
Теперь "часть A" находится прямо внутри класса B и может быть легко доступна, наравне с методами и свойствами самого класса B. Например, для объекта $obj класса B допустимы выражения $obj->TestA() и $obj->TestB().


это с php.su

Поскольку дочерний класс всего-лишь расширение родительского обращаться к свойствам родительского класса - не проблема. А вот для обратной связи (я не уверен) мне кажется нам потребуется чтобы родительский класс был абстрактным.

Спустя 21 час, 31 минута, 57 секунд (13.05.2010 - 20:05) rodzewich написал(а):
Цитата
Добавить защищенный метод DOMNode который будет возвращать свойство DOMDocument. Все должно успешно вызываться из DOMElement'а


А вот и не вызывается, вот конкретный пример
$dom=new DOMDocument('1.0','UTF-8');
$domelement=$dom->createElement('p');
$dom->appendChild($domelement);
el($domelement);

function el($domelement){
$dom=$domelement->DOMDocument; // <- Это свойство не работает, хотя DOMElement унаследован от DOMNode
$strong=$dom->createElement('strong','... text ...');
$domelement->appendChild($strong);
}

----------
Для остальных - я не полный дебил и с ООП php знаком

Итак, объясняю для кто незнаком DOM екстеншеном
Класс DOMNode имеет свойство DOMDocument ...
http://ru2.php.net/manual/en/class.domnode.php
А класс DOMElement получается так:
DOMElement extends DOMNode{}
http://ru2.php.net/manual/en/class.domelement.php

Так вот, я имея DOMElement хочу получить свойство DOMDocument!!!

Спустя 5 часов, 46 минут (14.05.2010 - 01:51) dr_Lev написал(а):
В приведенных тобою мануалах я не нашел никакого свойства DOMDocument у класса DOMNode, есть свойство ownerDocument тип - класса DOMDocument
$dom=$domelement->ownerDocument ;

Спустя 7 часов, 45 минут, 3 секунды (14.05.2010 - 09:36) rodzewich написал(а):
Цитата (dr_Lev @ 13.05.2010 - 22:51)
В приведенных тобою мануалах я не нашел никакого свойства DOMDocument у класса DOMNode, есть свойство ownerDocument тип - класса DOMDocument
$dom=$domelement->ownerDocument ;

Действительно так и есть ...
Сори, извиняюсь что всех озадачил
Неправильно прочитал документацию )))


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.