PHP 8.3.22 Released!

Voting

: zero plus seven?
(Example: nine)

The Note You're Voting On

info at ensostudio dot ru
3 years ago
Extended SimpleXMLElement:
<?php
class XmlElement extends \SimpleXMLElement
{
public static function
factory(string $root): self
{
return new static(
'<?xml version="1.0" encoding="UTF-8"?><'.$root.'/>', LIBXML_BIGLINES | LIBXML_COMPACT);
}

/**
* @param iterable $attributes An array of element attributes as name/value pairs
* @return $this
*/
public function addAttributes(iterable $attributes)
{
foreach (
$attributes as $name => $value) {
$this->addAttribute($name, $value);
}

return
$this;
}

/**
* @param string $name The sub-element name
* @param string|array|null $valueOrAttributes The sub-element value or an array of attributes
* @param string|null $namespace The sub-element namespace
* @return static|null
*/
public function addChild($name, $valueOrAttributes = null, $namespace = null)
{
if (
is_array($valueOrAttributes)) {
$child = parent::addChild($name, null, $namespace);
foreach (
$valueOrAttributes as $name => $value) {
$child->addAttribute($name, $value);
}
} else {
$child = parent::addChild($name, $valueOrAttributes, $namespace);
}

return
$child;
}

/**
* @param iterable $childs An array of sub-elements as name/value(or attributes) pairs
* @return $this
*/
public function addChilds(iterable $childs)
{
foreach (
$childs as $name => $value) {
$this->addChild($name, $value);
}

return
$this;
}
}
?>

<< Back to user notes page

To Top