Foros del Web » Programando para Internet » PHP »

Problema con simplexml_load_file

Estas en el tema de Problema con simplexml_load_file en el foro de PHP en Foros del Web. Holaaa a todos Soy nuevo en esto de los foros y queria ver si me podian ayudar ahorita tengo un problema con simplexml_load_file y no ...
  #1 (permalink)  
Antiguo 25/07/2011, 12:29
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Problema con simplexml_load_file

Holaaa a todos
Soy nuevo en esto de los foros y queria ver si me podian ayudar

ahorita tengo un problema con simplexml_load_file y no he encontrado el porque
actualmente estoy trabajando en un proyecto de facturación electrónica
y necesito leer y modificar un xml.

Estube investigando y encontré lo de simplexml y si lee el archivo pero me pasa algo curioso; dentro de la estructura de una factura electrónica hay un apartado que se llama addenda y en este se pone lo que se dice datos del negocio y que pa fines prácticos terminan siendo un par de element extra ahora bien mi problema
al momento de leer la factura electrónica si lo lee pero el nodo este de addenda no o bueno nada mas el primer nivel, los elemnts que están dentro de este no los lee
y la única diferencia que encontré entre este y los otros nodos que los lee bien es que en el addenda tienen lo del namespace y xchemalocation ya que llevan un prefijo los elements.

no se si sea que con simplexml no se puede hacer o deba de usar otra función

bueno espero que me puedan ayudar
y agradezco de antemano todas sus ayudas

Última edición por jgtv88; 25/07/2011 a las 12:52 Razón: Me equivoque de icono
  #2 (permalink)  
Antiguo 25/07/2011, 16:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Problema con simplexml_load_file

Saludos y bienvenido.

Muestra la estructura y también lo que haz hecho para leerlo. Si es muy grande el archivo de xml, muestra parte.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 25/07/2011, 16:36
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problema con simplexml_load_file

hola abimaelrc
este es el código de php ke o único que estoy intentando es desplegar el contenido
el xml borre algunos datos debido a que es una factura

Código PHP:
<?php
$xml 
simplexml_load_file('archivo.xml');
      if (!
$xml) {
          echo 
"No se pudo abrir el archivo XML.";
          exit;
      }
    
      foreach(
$xml->Addenda as $mensaje => $value)
        {    echo 
'..';
            echo 
"$mensaje => $value";
        }
echo 
'<br />';

      foreach(
$xml as $mensaje => $value2)
        {
            echo 
'//*';
            echo 
"$mensaje => $value2";
        }
echo 
'<br />';
        
print_r($xml);
        
        echo 
'<br />';
        
print_r($xml->Addenda);
      
?>
<?xml version="1.0" encoding="utf-8"?>
<Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" serie="FPP" folio="60130" fecha="2009-11-09T22:22:00" noAprobacion="10884" anoAprobacion="2009" formaDePago="PAGO EN UNA SOLA EXHIBICION" noCertificado=" " subTotal=" " descuento="0.00" total=" " tipoDeComprobante="ingreso">
<Emisor rfc="ffg124124" nombre="wertyu">
<DomicilioFiscal calle=" " colonia=" " localidad=" " municipio=" " estado=" " pais="MEXICO" codigoPostal=" "/>
<ExpedidoEn calle=" " colonia=" " localidad=" " municipio=" " estado=" " pais="MEXICO" codigoPostal=" " />
</Emisor>
<Receptor rfc=" " nombre=" ">
<Domicilio calle=" " colonia=" " localidad="Monterrey" estado="Nuevo León" pais="México" codigoPostal=""/>
</Receptor>
<Conceptos>
<Concepto cantidad="17.260" unidad="Plg." descripcion="Lamina" valorUnitario="995.00" importe="17173.73">
</Concepto>

</Conceptos>
<Impuestos totalImpuestosTrasladados="2576.06">
<Traslados>
<Traslado impuesto="IVA" tasa="15.00" importe="2576.06" />
</Traslados>
</Impuestos>

<Addenda xmlns:gen="http://www.xxxxx.com/xsd/AddendaGEN" xsi:schemaLocation="http://www.xxxxxx.com/xsd/AddendaGEN http://www.xxxx.com/xsd/AddendaGEN/AddendaGenAHM.xsd">
<gen:AddendaGenAHM Version="1.0">
<gen:Generales>
<gen:TipoCambio>13.3430</gen:TipoCambio>
</gen:Generales></gen:AddendaGenAHM>
</Addenda>
</Comprobante>

  #4 (permalink)  
Antiguo 25/07/2011, 16:40
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problema con simplexml_load_file

y por cierto gracias por la bienvenida
  #5 (permalink)  
Antiguo 25/07/2011, 17:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Problema con simplexml_load_file

Lo que sucede es que ahí tienes que trabajar con los "namespaces" Una forma de lograr ver el contenido en el ejemplo que expusiste, se puede hacer así (muy fea por cierto pero para que tengas una idea de qué hacer)
Código PHP:
Ver original
  1. <?php
  2. $xml = new SimpleXMLElement('http://localhost/a.xml', null, true);
  3. $getNS = $xml->getNamespaces(true);
  4. foreach($xml->Addenda->children($getNS['gen'])->children($getNS['gen'])->children($getNS['gen']) as $k => $v){
  5.     echo "$k => $v <br />";
  6. }

Pasa por el área de aportes hay un tema que explico como trabajar con SimpleXML y así te das una mejor idea.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 25/07/2011, 17:25
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problema con simplexml_load_file

Muchas gracias
con eso me basta ya se por donde buscarle

y gracias por el consejo de lo de las aportaciones
horita lo reviso

Etiquetas: electronica, factura, simplexml_load_file, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:34.