
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:
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.
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


0