createDocumentType($type, isset($url)?$dtd:'', isset($url)?$url:$dtd); $doc = $impl->createDocument($version, '', $domdtd); } else { $doc = $impl->createDocument($version, ''); } // ensure we are outputting UTF-8 $doc->encoding = 'UTF-8'; } else { // Use the XMLNode class $doc = &new XMLNode(); $doc->setAttribute('version', $version); $doc->setAttribute('type', $type); $doc->setAttribute('dtd', $dtd); $doc->setAttribute('url', $url); } return $doc; } function &createElement(&$doc, $name) { if (is_callable(array($doc, 'createElement'))) $element = &$doc->createElement($name); else $element = &new XMLNode($name); return $element; } function &createTextNode(&$doc, $value) { $value = Core::cleanVar($value); if (is_callable(array($doc, 'createTextNode'))) $element = &$doc->createTextNode($value); else { $element = &new XMLNode(); $element->setValue($value); } return $element; } function &appendChild(&$parentNode, &$child) { if (is_callable(array($parentNode, 'appendChild'))) $node = &$parentNode->appendChild($child); else { $parentNode->addChild($child); $child->setParent($parentNode); $node = &$child; } return $node; } function &getAttribute(&$node, $name) { return $node->getAttribute($name); } function &hasAttribute(&$node, $name) { if (is_callable(array($node, 'hasAttribute'))) $value = &$node->hasAttribute($name); else { $attribute = &XMLCustomWriter::getAttribute($node, $name); $value = ($attribute !== null); } return $value; } function setAttribute(&$node, $name, $value, $appendIfEmpty = true) { if (!$appendIfEmpty && $value == '') return; return $node->setAttribute($name, $value); } function &getXML(&$doc) { if (is_callable(array($doc, 'saveXML'))) $xml = &$doc->saveXML(); else { $xml = $doc->toXml(); } return $xml; } function printXML(&$doc) { if (is_callable(array($doc, 'saveXML'))) echo $doc->saveXML(); else $doc->toXml(true); } function &createChildWithText(&$doc, &$node, $name, $value, $appendIfEmpty = true) { $childNode = null; if ($appendIfEmpty || $value != '') { $childNode = &XMLCustomWriter::createElement($doc, $name); $textNode = &XMLCustomWriter::createTextNode($doc, $value); XMLCustomWriter::appendChild($childNode, $textNode); XMLCustomWriter::appendChild($node, $childNode); } return $childNode; } function &createChildFromFile(&$doc, &$node, $name, $filename) { $contents = &FileManager::readFile($filename); if ($contents === false) return null; } } ?>