function XmlEncoder::encode
Same name in this branch
- 11.1.x core/modules/serialization/src/Encoder/XmlEncoder.php \Drupal\serialization\Encoder\XmlEncoder::encode()
Overrides EncoderInterface::encode
File
-
vendor/
symfony/ serializer/ Encoder/ XmlEncoder.php, line 82
Class
- XmlEncoder
- @author Jordi Boggiano <j.boggiano@seld.be> @author John Wards <jwards@whiteoctober.co.uk> @author Fabian Vogler <fabian@equivalence.ch> @author Kévin Dunglas <dunglas@gmail.com> @author Dany Maillard…
Namespace
Symfony\Component\Serializer\EncoderCode
public function encode(mixed $data, string $format, array $context = []) : string {
$encoderIgnoredNodeTypes = $context[self::ENCODER_IGNORED_NODE_TYPES] ?? $this->defaultContext[self::ENCODER_IGNORED_NODE_TYPES];
$ignorePiNode = \in_array(\XML_PI_NODE, $encoderIgnoredNodeTypes, true);
if ($data instanceof \DOMDocument) {
return $this->saveXml($data, $ignorePiNode ? $data->documentElement : null);
}
$xmlRootNodeName = $context[self::ROOT_NODE_NAME] ?? $this->defaultContext[self::ROOT_NODE_NAME];
$dom = $this->createDomDocument($context);
if (null !== $data && !\is_scalar($data)) {
$root = $dom->createElement($xmlRootNodeName);
$dom->appendChild($root);
$this->buildXml($root, $data, $format, $context, $xmlRootNodeName);
}
else {
$this->appendNode($dom, $data, $format, $context, $xmlRootNodeName);
}
return $this->saveXml($dom, $ignorePiNode ? $dom->documentElement : null, $context[self::SAVE_OPTIONS] ?? $this->defaultContext[self::SAVE_OPTIONS]);
}