XmlConverter
in package
Clase `XmlConverter` que proporciona métodos para convertir entre arreglos PHP y documentos XML, permitiendo generar nodos XML a partir de datos estructurados y viceversa.
Table of Contents
Properties
- $rules : array<string|int, mixed>
- Reglas para convertir de arreglo de PHP a XML y viceversa.
Methods
- arrayToXml() : XmlDocument|DOMElement
- Convierte un arreglo PHP a un documento XML, generando los nodos y respetando un espacio de nombres si se proporciona.
- xmlToArray() : array<string|int, mixed>
- Convierte un documento XML a un arreglo PHP.
- arrayAddChilds() : void
- Agrega nodos hijos de un documento XML a un arreglo PHP.
- nodeAddAttributes() : void
- Agrega atributos a un nodo XML a partir de un arreglo.
- nodeAddChilds() : void
- Agrega nodos hijos a un nodo XML a partir de un arreglo.
- nodeAddValue() : void
- Agrega un nodo XML con un valor escalar a un nodo padre.
- nodeCountTwins() : int
- Cuenta los nodos con el mismo nombre hijos de un DOMElement.
- skipValue() : bool
- Verifica si un valor debe omitirse al generar un nodo XML.
Properties
$rules
Reglas para convertir de arreglo de PHP a XML y viceversa.
private
static array<string|int, mixed>
$rules
= [
// ¿Cómo se deben procesar los valores de los nodos?.
'node_values' => [
// Valores que hacen que el nodo no se genere (se omite).
'skip_generation' => [null, false, []],
// Valores que generan un nodo vacío.
'generate_empty' => ['', true],
],
]
Methods
arrayToXml()
Convierte un arreglo PHP a un documento XML, generando los nodos y respetando un espacio de nombres si se proporciona.
public
static arrayToXml(array<string|int, mixed> $data[, array<string|int, mixed>|null $namespace = null ][, DOMElement|null $parent = null ][, XmlDocument $doc = null ]) : XmlDocument|DOMElement
Parameters
- $data : array<string|int, mixed>
-
Arreglo con los datos que se usarán para generar XML.
- $namespace : array<string|int, mixed>|null = null
-
Espacio de nombres para el XML (URI y prefijo).
- $parent : DOMElement|null = null
-
Elemento padre para los nodos, o null para que sea la raíz.
- $doc : XmlDocument = null
-
El documento raíz del XML que se genera.
Return values
XmlDocument|DOMElementxmlToArray()
Convierte un documento XML a un arreglo PHP.
public
static xmlToArray(XmlDocument|DOMElement $documentElement[, array<string|int, mixed>|null &$data = null ][, bool $twinsAsArray = false ]) : array<string|int, mixed>
Parameters
- $documentElement : XmlDocument|DOMElement
-
Documento XML que se desea convertir a un arreglo de PHP o el elemento donde vamos a hacer la conversión si no es el documento XML completo.
- $data : array<string|int, mixed>|null = null
-
Arreglo donde se almacenarán los resultados.
- $twinsAsArray : bool = false
-
Indica si se deben tratar los nodos gemelos como un arreglo.
Return values
array<string|int, mixed> —Arreglo con la representación del XML.
arrayAddChilds()
Agrega nodos hijos de un documento XML a un arreglo PHP.
private
static arrayAddChilds(array<string|int, mixed> &$data, DOMElement $tagElement, DOMNodeList $childs, bool $twinsAsArray) : void
Parameters
- $data : array<string|int, mixed>
-
Arreglo donde se agregarán los nodos hijos.
- $tagElement : DOMElement
-
Nodo padre del que se extraerán los nodos hijos.
- $childs : DOMNodeList
-
Lista de nodos hijos del nodo padre.
- $twinsAsArray : bool
-
Indica si se deben tratar los nodos gemelos como un arreglo.
nodeAddAttributes()
Agrega atributos a un nodo XML a partir de un arreglo.
private
static nodeAddAttributes(DOMElement $node, array<string|int, mixed> $attributes) : void
Parameters
- $node : DOMElement
-
Nodo al que se agregarán los atributos.
- $attributes : array<string|int, mixed>
-
Arreglo de atributos (clave => valor).
Tags
nodeAddChilds()
Agrega nodos hijos a un nodo XML a partir de un arreglo.
private
static nodeAddChilds(XmlDocument $doc, XmlDocument|DOMElement $parent, string $tagName, array<string|int, mixed> $childs[, array<string|int, mixed>|null $namespace = null ]) : void
Parameters
- $doc : XmlDocument
-
Documento XML en el que se agregarán los nodos.
- $parent : XmlDocument|DOMElement
-
Nodo padre al que se agregarán los nodos hijos.
- $tagName : string
-
Nombre del tag del nodo hijo.
- $childs : array<string|int, mixed>
-
Arreglo de datos de los nodos hijos.
- $namespace : array<string|int, mixed>|null = null
-
Espacio de nombres para el XML (URI y prefijo).
Tags
nodeAddValue()
Agrega un nodo XML con un valor escalar a un nodo padre.
private
static nodeAddValue(XmlDocument $doc, DOMElement $parent, string $tagName, string $value[, array<string|int, mixed>|null $namespace = null ]) : void
Parameters
- $doc : XmlDocument
-
Documento XML en el que se agregarán los nodos.
- $parent : DOMElement
-
Nodo padre al que se agregará el nodo hijo.
- $tagName : string
-
Nombre del tag del nodo hijo.
- $value : string
-
Valor del nodo hijo.
- $namespace : array<string|int, mixed>|null = null
-
Espacio de nombres para el XML (URI y prefijo).
nodeCountTwins()
Cuenta los nodos con el mismo nombre hijos de un DOMElement.
private
static nodeCountTwins(DOMElement $dom, string $tagName) : int
Parameters
- $dom : DOMElement
-
Elemento DOM donde se buscarán los nodos.
- $tagName : string
-
Nombre del tag a contar.
Return values
int —Cantidad de nodos hijos con el mismo nombre.
skipValue()
Verifica si un valor debe omitirse al generar un nodo XML.
private
static skipValue(mixed $value) : bool
Parameters
- $value : mixed
-
Valor a verificar.
Return values
bool —true
si el valor debe omitirse, false
en caso contrario.