Qué tal amigos foreros? Hoy tengo una consulta de SimpleXML de PHP. Pues resulta que obtengo diversos XML que son las facturas (en México) de los proveedores y el formato de los atributos siempre es el mismo:
Código XML:
Ver original<?xml version="1.0" encoding="UTF-8"?>
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd" version="3.3" serie="A"
folio="2197" ...>
Pero en raras ocasiones los atributos tienen la primera letra en mayúsculas:
Version="3.3"
Serie="A"
Folio="2197" como ya sabemos en XML se distingue de mayúsculas y minúsculas, esto hace que al momento de cargar los datos ya no los pueda leer. Lo hago de la siguiente manera:
Código PHP:
$xml = new SimpleXMLElement($path, NULL, TRUE);
$ns = $xml->getNamespaces(true);
$fechaf = $xml->attributes()->fecha;//<---- Aquí si el atributo es Fecha y no fecha ya no lo leyó y tampoco asigno el valor.
$forma = $xml->attributes()->formaDePago;
$metodo = $xml->attributes()->metodoDePago;
Saben si es posible leer el atributo sin importar si tiene minúsculas o mayúsculas?
Saludos!