Create a new node.
public createNewNode ( DOMNode $parent_node, string $name ) : DOMNode | ||
$parent_node | DOMNode | Attach the new node to this parent. |
$name | string | Name of the new child node. |
return | DOMNode | The new child node. |
/** * Update the specified attribute. * * @param string $name The name of the attribute * to be updated. * @param mixed $value The value to store. * @param DOMNode $parent_node The parent node of the * node that should be * updated. * @param Horde_Kolab_Format_Xml_Helper $helper A XML helper instance. * @param array $params The parameters for this * write operation. * @param DOMNode|NULL $old_node The previous value (or * null if there is none). * * @return DOMNode|boolean The new/updated child node or false if this * failed. * * @throws Horde_Kolab_Format_Exception If converting the data to XML failed. */ public function saveNodeValue($name, $value, $parent_node, Horde_Kolab_Format_Xml_Helper $helper, $params = array(), $old_node = false) { if ($old_node === false) { $node = $helper->createNewNode($parent_node, $name); $this->_writeComposite($node, $name, $value, $helper, $params); return $node; } else { $this->_writeComposite($old_node, $name, $value, $helper, $params); return $old_node; } }
/** * Update the specified attribute. * * @param string $name The name of the the * attribute to be updated. * @param array $attributes The data array that holds * all attribute values. * @param DOMNode $parent_node The parent node of the * node that should be * updated. * @param Horde_Kolab_Format_Xml_Helper $helper A XML helper instance. * @param array $params Additional parameters * for this write operation. * * @return DOMNode|boolean The new/updated child node or false if this * failed. * * @throws Horde_Kolab_Format_Exception If converting the data to XML failed. */ public function save($name, $attributes, $parent_node, Horde_Kolab_Format_Xml_Helper $helper, $params = array()) { if (!($root = $helper->findNode('/' . $name, $parent_node))) { $root = $helper->createNewNode($parent_node, $name); $root->setAttribute('version', $params['expected-version']); } else { if (!$this->isRelaxed($params)) { if (version_compare($params['expected-version'], $root->getAttribute('version')) < 0) { throw new Horde_Kolab_Format_Exception_InvalidRoot(sprintf('Not attempting to overwrite higher root version of %s with our version %s!', $root->getAttribute('version'), $params['expected-version'])); } } if ($params['expected-version'] != $root->getAttribute('version')) { $root->setAttribute('version', $params['expected-version']); } } $this->_prepareCompositeParameters($params, $params['expected-version']); parent::save($name, $attributes, $parent_node, $helper, $params); return $root; }