2017-03-05 4 views
0

"DOMNode"클래스가 존재하는 이유를 알고 싶습니다. DOMElement가 그것을 확장하는 것이 합리적인 것처럼 보입니다. 그래서 그 목적은 무엇입니까?DOMAttr DOMNode를 확장하는 이유는 무엇입니까? 또는 DOMNode 클래스를 일반적으로 사용하는 목적은 무엇입니까?

예를 들어, DOMAode 클래스 (http://php.net/manual/en/class.domattr.php)가 DOMNode 클래스를 기반으로하는 이유는 무엇입니까? 여기의 관계는 무엇입니까? DOMAttr은 "childNodes"또는 ... DOMNode가 제공하는 모든 것을 가질 수 없습니다.

키 = 값일까요? 아닙니다.

새로운 DOMAttr ('key', 'val')을 사용하면 nodeName == 'key'및 nodeValue == 'val'을 사용하여 DOMNode를 얻을 때 정확히 "공유"할 수 있습니다. 하지만 ... 그래서? 키/val 쌍이 여전히 이 아니라 DOM 트리 노드입니다. 맞습니까?

답변

1

짧은 대답,이 질문은 PHP가 단지 W3C specification of the DOM document을 구현하기 때문에 PHP 질문이 아닙니다.

사양에서 노드는 특성, 요소 및 텍스트를 포함하여 트리의 모든 부분입니다. DOMNode이있는 이유는 트리의 모든 부분이 공통 상위로부터 상속받는 것을 정당화하는 많은 공통 속성을 공유하기 때문입니다.

따라서 요소와 속성이 인터페이스 디자인에서 공통 조상을 공유하는 이유는 완전히 정당합니다. 나는 노드가 보통 트리/그래프의 정점 일 때 진짜 질문이 node 인 이유라고 생각한다.

+0

감사합니다. @apokryfos! 나는 그것에 대해 결코 생각하지 않을 것이다. 실제로 :) – konrados