public function replaceFirstNodeTextValue($node, $value) { if (($child = $this->_fetchFirstTextNode($node)) !== null) { $node->removeChild($child); } $new_node = $this->_xmldoc->createTextNode($value); if (empty($node->childNodes)) { $node->appendChild($new_node); } else { $node->insertBefore($new_node, $node->childNodes->item(0)); } }
/** * 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) { return $helper->storeNewNodeValue($parent_node, $name, $value); } else { $helper->replaceFirstNodeTextValue($old_node, $value); return $old_node; } }