removeNodes() публичный Метод

Remove named nodes from a parent node.
public removeNodes ( DOMNode $parent_node, string $name ) : null
$parent_node DOMNode The parent node.
$name string The name of the children to be removed.
Результат null
Пример #1
0
 /**
  * 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())
 {
     $node = $helper->findNodeRelativeTo('./' . $name, $parent_node);
     if (!isset($attributes[$name])) {
         if ($node !== false) {
             /** Client indicates that the value should get removed */
             $helper->removeNodes($parent_node, $name);
         }
         return false;
     }
     return $this->saveNodeValue($name, $this->generateWriteValue($name, $attributes, $params), $parent_node, $helper, $params, $node);
 }
Пример #2
0
 /**
  * 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())
 {
     $node = $helper->findNodeRelativeTo('./' . $name, $parent_node);
     if (!$this->merge && !isset($attributes[$name])) {
         if ($node === false) {
             if ($this->value == Horde_Kolab_Format_Xml::VALUE_MAYBE_MISSING || $this->value == Horde_Kolab_Format_Xml::VALUE_NOT_EMPTY && $this->isRelaxed($params)) {
                 return false;
             }
         } else {
             if ($this->value == Horde_Kolab_Format_Xml::VALUE_MAYBE_MISSING) {
                 /** Client indicates that the value should get removed */
                 $helper->removeNodes($parent_node, $name);
                 return false;
             } else {
                 return $node;
             }
         }
     }
     return $this->saveNodeValue($name, $this->generateWriteValue($name, $attributes, $params), $parent_node, $helper, $params, $node);
 }
Пример #3
0
 /**
  * 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())
 {
     $node = $helper->findNodeRelativeTo('./' . $name, $parent_node);
     if (!isset($attributes[$name])) {
         if (!empty($attributes['categories'])) {
             $attributes[$name] = $attributes['categories'];
             unset($attributes['categories']);
         }
     }
     if (!isset($attributes[$name]) && $node === false && !$this->isRelaxed($params)) {
         throw new Horde_Kolab_Format_Exception_MissingValue('Preferences data is missing an application setting.');
     }
     if ($node === false) {
         $categories = $helper->findNodeRelativeTo('./categories', $parent_node);
         /** Remove old categories entry */
         $helper->removeNodes($parent_node, 'categories');
     }
     return $this->saveNodeValue($name, $this->generateWriteValue($name, $attributes, $params), $parent_node, $helper, $params, $node);
 }
Пример #4
0
 /**
  * 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())
 {
     $children = $helper->findNodesRelativeTo('./' . $name, $parent_node);
     if (!isset($attributes[$name])) {
         if ($children->length == 0) {
             if ($this->value == Horde_Kolab_Format_Xml::VALUE_MAYBE_MISSING || $this->value == Horde_Kolab_Format_Xml::VALUE_NOT_EMPTY && $this->isRelaxed($params)) {
                 return false;
             }
         } else {
             if ($this->value == Horde_Kolab_Format_Xml::VALUE_MAYBE_MISSING) {
                 /** Client indicates that the value should get removed */
                 $helper->removeNodes($parent_node, $name);
                 return false;
             } else {
                 return $children;
             }
         }
     }
     //@todo What is required to get around this overwriting of the old values?
     $helper->removeNodes($parent_node, $name);
     return $this->_writeMultiple($parent_node, $name, $this->generateWriteValue($name, $attributes, $params), $helper, $params);
 }