無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0)

DOMDocument::registerNodeClass??????

public bool DOMDocument::registerNodeClass ( string $baseclass , string $extendedclass )

?????? DOM ?????? ? PHP DOM ????

???DOM ?????

??

baseclass

DOM ???? ????

extendedclass

??NULL ?? ?? baseclass ?????

?

? TRUE ?? FALSE ??

?

5.2.2 5.2.2 ??? baseclass ???????? extendedclass ????

1 ?? DOMElement ????

<?php

class myElement extends DOMElement {
   function 
appendElement($name) { 
      return 
$this->appendChild(new myElement($name));
   }
}

class 
myDocument extends DOMDocument {
   function 
setRoot($name) { 
      return 
$this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement''myElement');

// ??????????????!
$root $doc->setRoot('root');
$child $root->appendElement('child');
$child->setAttribute('foo''bar');

echo 
$doc->saveXML();

?>

??????

<?xml version="1.0"?>
<root><child foo="bar"/></root>

2 ????

<?php
class myElement extends DOMElement {
    public function 
__toString() {
        return 
$this->nodeValue;
    }
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");
$doc->registerNodeClass("DOMElement""myElement");

$element $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// __toString ?????..
echo $element;
?>

??????

string(9) "myElement"
text in child

3 ???

DOMDocument ??? ownerDocument ???????? ? DOMDocument DOMDocument::registerNodeClass() ????? (???) ???

<?php
class myDOMDocument extends DOMDocument {
}

class 
myOtherDOMDocument extends DOMDocument {
}

// XML  myDOMDocument ?
$doc = new myDOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");

$child $doc->getElementsByTagName("child")->item(0);

// ??? myDOMDocument ?
var_dump(get_class($child->ownerDocument));

// ? myDOMDocument ????
$newdoc = new myOtherDOMDocument;
$child $newdoc->importNode($child);

// ?? myOtherDOMDocument ??
var_dump(get_class($child->ownerDocument));
?>

??????

string(13) "myDOMDocument"
string(18) "myOtherDOMDocument"



powered by SEO.CUG.NET