private function XmlEncoder::selectNodeType

Tests the value being passed and decide what sort of element to create

Parameters

DOMNode $node:

mixed $val:

Return value

Boolean

2 calls to XmlEncoder::selectNodeType()
XmlEncoder::appendNode in drupal/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
Selects the type of node to create and appends it to the parent.
XmlEncoder::buildXml in drupal/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
Parse the data and convert it to DOMElements

File

drupal/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php, line 367

Class

XmlEncoder
Encodes XML data

Namespace

Symfony\Component\Serializer\Encoder

Code

private function selectNodeType($node, $val) {
  if (is_array($val)) {
    return $this
      ->buildXml($node, $val);
  }
  elseif ($val instanceof \SimpleXMLElement) {
    $child = $this->dom
      ->importNode(dom_import_simplexml($val), true);
    $node
      ->appendChild($child);
  }
  elseif ($val instanceof \Traversable) {
    $this
      ->buildXml($node, $val);
  }
  elseif (is_object($val)) {
    return $this
      ->buildXml($node, $this->serializer
      ->normalize($val, $this->format));
  }
  elseif (is_numeric($val)) {
    return $this
      ->appendText($node, (string) $val);
  }
  elseif (is_string($val) && $this
    ->needsCdataWrapping($val)) {
    return $this
      ->appendCData($node, $val);
  }
  elseif (is_string($val)) {
    return $this
      ->appendText($node, $val);
  }
  elseif (is_bool($val)) {
    return $this
      ->appendText($node, (int) $val);
  }
  elseif ($val instanceof \DOMNode) {
    $child = $this->dom
      ->importNode($val, true);
    $node
      ->appendChild($child);
  }
  return true;
}