25 static $errs = array();
31 $tag =
'DOMDocument::validate(): ';
32 $errs[] = str_replace($tag,
'', $errstr);
40 define(
'DOMXML_LOAD_PARSING', 0);
58 function xpath_eval($xpath_context, $eval_str, $contextnode = null)
60 return $xpath_context->query($eval_str, $contextnode);
74 $this->myDOMAttr = $aDOMAttr;
79 return $this->myDOMAttr->name;
84 return $this->myDOMAttr->specified;
89 return $this->myDOMAttr->value;
99 parent::php4DOMNode($aDOMCDATASection);
100 $this->myDOMCDATASection = $aDOMCDATASection;
111 $this->myDOMDocument =
new DOMDocument();
113 set_error_handler(
'staticxmlerror');
114 $old = ini_set(
'html_errors',
false);
117 $this->myDOMDocument =
$source;
129 ini_set(
'html_errors', $old);
130 restore_error_handler();
133 $this->error_arr =
staticxmlerror(null, null, null, null, null,
true);
134 foreach ($this->error_arr as $error) {
135 $error = str_replace(
"DOMDocument::loadXML():",
"", $error);
136 $this->error .= $error .
"<br />";
148 unset($this->myDOMDocument);
160 $str = $this->myDOMDocument->saveXML($node->myDOMNode);
165 public function validate(&$error,
bool $throw =
false)
168 $ok = $this->myDOMDocument->validate();
175 $error = array(array(
"0",
"Unknown Error"));
177 if (function_exists(
"libxml_get_last_error")) {
178 $err = libxml_get_last_error();
180 if (is_object($err)) {
181 $error = array(array($err->code, $err->message));
190 $myAttr = $this->myDOMDocument->createAttribute(
$name);
191 $myAttr->value = $value;
213 return new php4DOMNode($this->myDOMDocument->createTextNode($content));
223 return $this->myDOMDocument->save(
$filename);
228 $r = $this->myDOMDocument->saveXML();
234 $myDOMNodeList = $this->myDOMDocument->getElementsByTagName(
$name);
237 while ($node = $myDOMNodeList->item(
$i)) {
247 return $this->myDOMDocument->saveHTML();
258 return $this->myDOMNode->getAttribute(
$name);
268 $myDOMNodeList = $this->myDOMNode->getElementsByTagName(
$name);
271 while ($node = $myDOMNodeList->item(
$i)) {
281 return $this->myDOMNode->hasAttribute(
$name);
286 return $this->myDOMNode->removeAttribute(
$name);
291 return $this->myDOMNode->setAttribute(
$name, $value);
296 return $this->myDOMNode->tagName;
305 $text = str_replace(
"<",
"<", $text);
306 $text = str_replace(
">",
">", $text);
307 $text = str_replace(
"&",
"&", $text);
309 $text_node =
new DOMText();
310 $text_node->appendData($text);
311 if (is_object($this->myDOMNode->firstChild)) {
312 $this->myDOMNode->replaceChild($text_node, $this->myDOMNode->firstChild);
314 $this->myDOMNode->appendChild($text_node);
321 $text_node = $this->myDOMNode->firstChild;
323 if (is_object($text_node)) {
324 return $text_node->textContent;
333 parent::unlink_node($aDomNode);
346 $this->myDOMNode = $aDomNode;
354 $doc = $this->myDOMNode->ownerDocument;
356 $newnode->myDOMNode = $doc->importNode($newnode->myDOMNode,
true);
358 return new php4DOMElement($this->myDOMNode->appendChild($newnode->myDOMNode));
367 return $this->
set_content($newnode->myDOMNode->textContent);
372 return new php4DOMElement($this->myDOMNode->parentNode->appendChild($newnode->myDOMNode));
378 $myDOMNodeList = $this->myDOMNode->attributes;
381 if (is_object($myDOMNodeList)) {
382 while ($node = $myDOMNodeList->item(
$i)) {
393 $myDOMNodeList = $this->myDOMNode->childNodes;
396 while ($node = $myDOMNodeList->item(
$i)) {
414 if (!is_object($aDomNode)) {
419 $parent = $aDomNode->myDOMNode->parentNode;
420 if (is_object($parent)) {
421 $parent->removeChild($aDomNode->myDOMNode);
437 return $this->myDOMNode->textContent;
442 return $this->myDOMNode->hasAttributes();
447 return $this->myDOMNode->hasChildNodes();
454 $doc = $this->myDOMNode->ownerDocument;
455 $newnode->myDOMNode = $doc->importNode($newnode->myDOMNode,
true);
458 $mynewnode = $newnode->myDOMNode;
459 $myrefnode = $refnode->myDOMNode;
461 $domel = $mydomnode->insertBefore($mynewnode, $myrefnode);
462 }
catch (DOMException $exception) {
464 $mydomnode = $this->myDOMNode->parentNode;
465 $domel = $mydomnode->insertBefore($mynewnode, $myrefnode);
474 $last = $this->myDOMNode->lastChild;
476 if (is_object($last)) {
486 $next = $this->myDOMNode->nextSibling;
488 if (is_object($next)) {
498 return $this->myDOMNode->localName;
500 return $this->myDOMNode->nodeName;
506 return $this->myDOMNode->nodeType;
511 return $this->myDOMNode->nodeValue;
517 $parent = $this->myDOMNode->parentNode;
519 if (is_object($parent)) {
529 $prev = $this->myDOMNode->previousSibling;
531 if (is_object($prev)) {
540 return new php4DOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode));
545 return new php4DOMElement($this->myDOMNode->replaceChild($oldchild->myDOMNode, $newnode->myDOMNode));
550 $this->myDOMNode->textContent = $text;
551 return $this->myDOMNode->textContent;
562 $this->myDOMNodelist = $aDOMNodelist;
563 $this->nodeset = array();
565 while ($node = $this->myDOMNodelist->item(
$i)) {
584 $this->myDOMXPath =
new DOMXPath($dom_document->myDOMDocument);
594 return $this->myDOMXPath->registerNamespace($prefix, $namespaceURI);
xpath_register_ns($prefix, $namespaceURI)
set_attribute($name, $value)
xpath_new_context($dom_document)
__construct($aDOMCDATASection)
domxml_open_mem($str, $mode=0, &$error=null)
xpath_eval($xpath_context, $eval_str, $contextnode=null)
dump_mem($format=false, $encoding=false)
__construct($dom_document)
staticxmlerror($errno, $errstr, $errfile, $errline, $errcontext, $ret=false)
dump_file($filename, $compressionmode=false, $format=false)
get_elements_by_tagname($name)
create_cdata_section($content)
get_elements_by_tagname($name)
validate(&$error, bool $throw=false)
__construct($aDOMNodelist)
insert_before($newnode, $refnode)
unlink_node($aDomNode="")
create_attribute($name, $value)
node_name($a_local=false)
__construct($source, $file=true, $a_mode=0)
create_text_node($content)
replace_child($oldnode, $newnode)
domxml_open_file($filename)