PHP - Problema con nodo en XML

 
Vista:
sin imagen de perfil

Problema con nodo en XML

Publicado por Fernando (14 intervenciones) el 11/10/2016 01:31:18
Buenas noches a todos,

Este es mi primer post y estoy teniendo problemas para modificar un XML con PHP.

Tengo el código de carga de un archivo XML pero a la hora de agregar un nodo me ocurre lo siguiente, marco en negrita las diferencias:

Esta es la estructura que necesito:

<cfdi:Addenda><hp:ITSB version="1.1" OdeC="PO-0000" xmlns:hp="http://www.itsmartbusiness.com/sitio_internet/EVA00/"> </hp:ITSB></cfdi:Addenda>

Esta es la que consigo:

<cfdi:Addenda><cfdi:ITSB version="1.1" xmlns:hp="http://www.itsmartbusiness.com/sitio_internet/EVA00/" OdeC="524536"/></cfdi:Addenda>

Y el código que estoy usando es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
$oc = $_GET["oc"];
$archivo = $_GET["archivo"];
 
$Comprobante = new SimpleXMLElement($archivo, null, true);
 
$adenda = $Comprobante->addChild("Addenda");
$nodo = $adenda->addChild("ITSB");
$nodo->addAttribute("version", "1.1");
$nodo->addAttribute("xmlns:xmlns:hp", "http://www.itsmartbusiness.com/sitio_internet/EVA00/");
$nodo->addAttribute("OdeC", $oc);
 
$Comprobante->asXML($archivo);
 
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename("$archivo"));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($archivo));
ob_clean();
flush();
readfile($archivo);
 
unlink($archivo);
exit;
 
 
 
?>

Espero su ayuda ya que no puedo utilizar mi XML si no consigo hacer el cambio en la parte de hp:ITSB.

Gracias de antemano.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con nodo en XML

Publicado por kip (877 intervenciones) el 11/10/2016 04:04:39
Hola, intenta creando el nodo de esta forma:

1
$nodo = $adenda->addChild("hp:ITSB");

Cuentanos si se resolvio

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con nodo en XML

Publicado por Fernando (14 intervenciones) el 11/10/2016 17:49:29
Buen día,

No ha cambiado nada, me volvio a mostrar la misma estructura:

<cfdi:Addenda>
<cfdi:ITSB version="1.1" OdeC="808080" xmlns:hp="http://www.itsmartbusiness.com/sitio_internet/EVA00/"/>
</cfdi:Addenda>

Espero su respuesta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con nodo en XML

Publicado por kip (877 intervenciones) el 11/10/2016 20:26:12
Prueba entonces haciendolo desde el nodo padre colocar el atributo hp, asi:

1
2
$adenda = $Comprobante->addChild("hp:Addenda");
$nodo = $adenda->addChild("hp:ITSB");

Si aun no funciona, puedes colocar el, contenido del XML ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con nodo en XML

Publicado por Fernando (14 intervenciones) el 11/10/2016 23:10:45
Buenas tardes,

No ha funcionado tampoco, este es el XML que me genera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="UTF-8"?>
 
-<cfdi:Comprobante sello="VQjl4dx/szKNHYY3sa/5EzkQ015IDWlr/97l0JYFZT1dmxTTWK0MwOdOqdeFQGZU4xYW8Epbw5S9BfdxgMbmrlLNEdZpbsdJKgQn+U=" certificado="MIIEjzMoEIjjviC4nN3Ahugy+klMgTM2k5X/D9BPEov+Rr9VJ9dXNEaI5IQEX46AJHrLwgqyCZSuPCZrkqB2I/LuvmOnDQWJEGYcybG/GHv3z6WtQIx5AHZL8tMsLllZ5bQB9wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEADC/D9Zr02QjLQAaH38CBJ6K0aJ5C94zVsqGio51hOTG3KPRSfQDebwJMrGkyjL6NTOgyWN2eeQ7s5BJPZ0RGy46+cX8fKYasvmVSHeCU0swJKCCwZ0u8v5I/wHb0FV3i3Rqx1Jwg8kolLXSZ0eX09RLEtch6xxjr5iBQNNvc/0SyJLaDK0KhHhjS4Li8wd54Y25ZCR5nJ51mTdOCw==" NumCtaPago="NO IDENTIFICADO" LugarExpedicion="BENITO JUAREZ, DF" tipoDeComprobante="ingreso" metodoDePago="03" total="105632.50" Moneda="Peso Mexicano" TipoCambio="1.00" subTotal="91062.50" condicionesDePago="30 DIAS" noCertificado="00001000000304969284" formaDePago="PAGO EN UNA SOLA EXHIBICION" fecha="2016-07-28T16:20:09" folio="19052" serie="A" version="3.2" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd http://www.pegasotecnologia.com/secfd/Schemas http://www.pegasotecnologia.com/secfd/Schemas/FME7112015B3.xsd" xmlns:OTRO="http://www.pegasotecnologia.com/secfd/Schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
 
 
-<cfdi:Emisor nombre="FORMULARIOS, S.A. DE C.V." rfc="FME89878015B3">
 
<cfdi:DomicilioFiscal codigoPostal="04580" pais="MEXICO" estado="DISTRITO FEDERAL" municipio="BENITO JUAREZ" colonia="GRAL. ALFREDO MORENO" noExterior="10" calle="AV. aztecas"/>
 
<cfdi:ExpedidoEn codigoPostal="11140" pais="MEXICO" estado="DF" municipio="BENITO JUAREZ" colonia="GRAL ALFREDO MORENO" noExterior="1070" calle="AV aztecas" localidad="MEXICO"/>
 
<cfdi:RegimenFiscal Regimen="Regimen General de Ley Personas Morales"/>
 
</cfdi:Emisor>
 
 
-<cfdi:Receptor nombre="TOTAL , S.A. DE C.V." rfc="T57498721HHG">
 
<cfdi:Domicilio codigoPostal="41000" pais="MEXICO" municipio="ESTADO DE MEXICO" colonia="PARQUE TOLUCA 300" noExterior="." calle="AV. PERU 66 2 LOTE 11" localidad="TOLUCA"/>
 
</cfdi:Receptor>
 
 
-<cfdi:Conceptos>
 
<cfdi:Concepto importe="91062.50" valorUnitario="235.00" descripcion="PARTIDA. 1 NO. DE PARTE E06-0171-6 PAPEL LASER DE 75 GMS. 2 AL PASO" unidad="MILLARES" cantidad="387.50"/>
 
</cfdi:Conceptos>
 
 
-<cfdi:Impuestos totalImpuestosTrasladados="14570.00">
 
 
-<cfdi:Traslados>
 
<cfdi:Traslado importe="14570.00" tasa="16.00" impuesto="IVA"/>
 
</cfdi:Traslados>
 
</cfdi:Impuestos>
 
 
-<cfdi:Complemento>
 
<tfd:TimbreFiscalDigital version="1.0" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigital/TimbreFiscalDigital.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" selloSAT="UNUgi7j63H8t7YC7x2kmy3wk51lynVfj7x+CeML99X+NlYTxgMUUuLitD5jCsV4v5v2jEWD5lNKgOkoPFQNPr68D3AFX88i/OaaLbta5rsenFy26p9lU8sJzR6M5QSsgpgPfFM3ljTwKHRnU8SdrJrf7mzjQi/M2emkTp3CFqJM=" noCertificadoSAT="0159220" selloCFD="VQjl4g+1TJO2/ho/4DHLCGqEClKtyw2mg/ApTsbAPryI4Kik4ntFMdx/szKNHYY3sa/5EzkQ015IDWlr/97l0JYFZT1dmxTmrlLNEdZpbsdJKgQn+U=" FechaTimbrado="2016-07-28T16:20:09" UUID="3685555546456h93" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital"/>
 
</cfdi:Complemento>
 
 
-<cfdi:Addenda>
 
<cfdi:ITSB version="1.1" OdeC="808080" xmlns:hp="http://www.itsmartbusiness.com/sitio_internet/EVA00/"/>
 
</cfdi:Addenda>
 
</cfdi:Comprobante>

Espero su respuesta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con nodo en XML

Publicado por kip (877 intervenciones) el 12/10/2016 01:20:00
El problema viene de los namespace declarados en el nodo principal, intentalo de esta forma:

1
$nodo = $adenda->addChild("xmlns:hp:ITSB", '', '');

Comentanos si asi te sirve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con nodo en XML

Publicado por Fernando (14 intervenciones) el 12/10/2016 01:52:53
Buenas noches,

Esta vez genera mal el archivo XML, no puedo abrirlo. Si reviso el código fuente se ve que ya agrego la etiqueta hp.

1
<cfdi:Addenda><hp:ITSB xmlns:xmlns="" version="1.1" xmlns:hp="http://www.itsmartbusiness.com/sitio_internet/EVA00/" OdeC="808080"></hp:ITSB></cfdi:Addenda>

Este es el código que utilice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$oc = $_GET["oc"];
$archivo = $_GET["archivo"];
 
$Comprobante = new SimpleXMLElement($archivo, null, true);
 
$adenda = $Comprobante->addChild("Addenda");
$nodo = $adenda->addChild("xmlns:hp:ITSB", '', '');
$nodo->addAttribute("version", "1.1");
$nodo->addAttribute("xmlns:xmlns:hp", "http://www.itsmartbusiness.com/sitio_internet/EVA00/");
$nodo->addAttribute("OdeC", $oc);
 
$Comprobante->asXML($archivo);
 
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename("$archivo"));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($archivo));
ob_clean();
flush();
readfile($archivo);
 
unlink($archivo);
exit;

Espero tu respuesta, gracias por el apoyo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con nodo en XML

Publicado por kip (877 intervenciones) el 12/10/2016 02:59:45
Yo lo he probado basandome en tu codigo de arriba y el XML que colocaste mas arriba en una respuesta anterior, lo probe descargandolo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$oc = $_GET["oc"];
$archivo = $_GET["archivo"];
 
$Comprobante = new SimpleXMLElement($archivo, null, true);
 
$adenda = $Comprobante->addChild("Addenda");
$nodo = $adenda->addChild("xmlns:hp:ITSB", '', '');
$nodo->addAttribute("version", "1.1");
$nodo->addAttribute("xmlns:xmlns:hp", "http://www.itsmartbusiness.com/sitio_internet/EVA00/");
$nodo->addAttribute("OdeC", $oc);
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="'.basename($archivo)'"');
echo $Comprobante->asXML();
exit;

Pruebalo de esa forma, si te muestra algun error por favor colocanos el mensaje que te muestra,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con nodo en XML

Publicado por Fernando (14 intervenciones) el 12/10/2016 17:45:51
Buen día,

Este es el error que marca al usar este script:

1
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Servidor\Web\finanzas\addendas\tsys\index_do_fin.php on line 13

Mi linea 13 es:

1
header('Content-type: text/xml');

Espero su respuesta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con nodo en XML

Publicado por kip (877 intervenciones) el 12/10/2016 22:25:03
Por favor podrias colocar todo el codigo de como lo tienes ahora?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con nodo en XML

Publicado por Fernando (14 intervenciones) el 12/10/2016 23:30:47
Este es el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$oc = $_GET["oc"];
$archivo = $_GET["archivo"];
 
$Comprobante = new SimpleXMLElement($archivo, null, true);
 
$adenda = $Comprobante->addChild("Addenda");
$nodo = $adenda->addChild("xmlns:hp:ITSB", '', '');
$nodo->addAttribute("version", "1.1");
$nodo->addAttribute("xmlns:xmlns:hp", "http://www.itsmartbusiness.com/sitio_internet/EVA00/");
$nodo->addAttribute("OdeC", $oc);
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="'.basename($archivo)'"');
echo $Comprobante->asXML();
exit;
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con nodo en XML

Publicado por kip (877 intervenciones) el 13/10/2016 03:20:27
Modifica esta linea:

1
header('Content-Disposition: attachment; filename="'.basename($archivo)'"');

De esta forma:

1
header('Content-Disposition: attachment; filename="'.basename($archivo).'"');

Faltaba un punto de concatenación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con nodo en XML

Publicado por Fernando (14 intervenciones) el 13/10/2016 18:59:10
Buenas tardes,

Realice el cambio pero no ejecuta el XML, si lo abro con editor de texto me muestra esto:

1
<cfdi:Addenda><hp:ITSB xmlns:xmlns="" version="1.1" xmlns:hp="http://www.itsmartbusiness.com/sitio_internet/EVA00/" OdeC="808080"></hp:ITSB></cfdi:Addenda>

Si quitamos la parte marcada en negritas ejecuta correctamente el XML.

Adjunto archivo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar