LibreDTE

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|DOMElement

xmlToArray()

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
throws
InvalidArgumentException

Si un valor de atributo es un arreglo.

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
throws
InvalidArgumentException

Si un nodo hijo no es un arreglo.

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.


        
On this page

Search results