La verdad es que no sé cómo leer determinada información de un XML, yo quisiera obtener como resultado "0.40" de la etiqueta:
Código:
con XML de la siguiente estructura:<cfdi:Impuestos TotalImpuestosRetenidos="0.40" TotalImpuestosTrasladados="3.20">
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" Version="3.3" Folio="0118050004" Fecha="2018-05-10T19:37:53" FormaPago="03" NoCertificado="00001000000404310829" SubTotal="20.00" Descuento="0.00" Moneda="MXN" TipoCambio="1" Total="22.80" TipoDeComprobante="I" MetodoPago="PPD" LugarExpedicion="37450" Sello="sss" Certificado="sssss"><cfdi:Emisor Rfc="sssss" Nombre="sssss" RegimenFiscal="624"/><cfdi:Receptor Rfc="ssss" Nombre="sssss SA DE CV" UsoCFDI="G03"/><cfdi:Conceptos><cfdi:Concepto ClaveProdServ="78101800" NoIdentificacion="N/D" Cantidad="1" ClaveUnidad="E54" Unidad="SERVICIO" Descripcion="F-12256,CTE-CARLOS-LOMA BONIT" ValorUnitario="10.00" Importe="10.000000" Descuento="0.00"><cfdi:Impuestos><cfdi:Traslados><cfdi:Traslado Base="10.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="1.60"/></cfdi:Traslados><cfdi:Retenciones><cfdi:Retencion Base="10.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.040000" Importe="0.40"/></cfdi:Retenciones></cfdi:Impuestos></cfdi:Concepto><cfdi:Concepto ClaveProdServ="78101800" NoIdentificacion="N/D" Cantidad="1" ClaveUnidad="E54" Unidad="SERVICIO" Descripcion="SEGURO DE MERCANCIA" ValorUnitario="10.00" Importe="10.000000" Descuento="0.00"><cfdi:Impuestos><cfdi:Traslados><cfdi:Traslado Base="10.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="1.60"/></cfdi:Traslados><cfdi:Retenciones><cfdi:Retencion Base="10.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0" Importe="0.00"/></cfdi:Retenciones></cfdi:Impuestos></cfdi:Concepto></cfdi:Conceptos><cfdi:Impuestos TotalImpuestosRetenidos="0.40" TotalImpuestosTrasladados="3.20"><cfdi:Retenciones><cfdi:Retencion Impuesto="002" Importe="0.40"/></cfdi:Retenciones><cfdi:Traslados><cfdi:Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="3.20"/></cfdi:Traslados></cfdi:Impuestos><cfdi:Complemento><tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" SelloCFD="sssssssssss" NoCertificadoSAT="00001000000405332712" RfcProvCertif="FIN1203015JA" UUID="D2DD7894-BC77-4428-A2B5-4B16B6418D8F" FechaTimbrado="2018-05-10T18:37:55" SelloSAT="sssssssssss"/></cfdi:Complemento></cfdi:Comprobante>
He intentado con:
Código PHP:
$DOM = new DOMDocument('1.0', 'utf-8');
$DOM->preserveWhiteSpace = FALSE;
$DOM->loadXML($xml);
$params = $DOM->getElementsByTagName('Retencion');
foreach ($params as $param) {
$TotRetencion = $TotRetencion + $param->getAttribute('Importe');
if ($param->getAttribute('Impuesto')=="002"){ // IVA RET
$ImporteTotalIVAR = $ImporteTotalIVAR + $param->getAttribute('Importe');
$ultimoImporteIVAR = $param->getAttribute('Importe');
}
}
$ImporteTotalIVAR = $ImporteTotalIVAR - $ultimoImporteIVAR;
![lloron](http://static.forosdelweb.com/fdwtheme/images/smilies/chillando.png)
¿Alguien que pudiera apoyarme a extraer exclusivamente el valor de "TotalImpuestosRetenidos="0.40"?
Cabe mencionar que a veces no existe esta etiqueta, por lo que si no existe debería decirme 0.00