Question:
Date: 14-12-2017 12:02:13
(In Spanish)
Se que para leer un archivo xml, debería usar los nodos e ir recorriendo según la jerarquía de estos . Pero el problema es que incluso el inicio no es un nodo sino un Namespaces , en la documentación solo encontré ejemplos básicos sobre el método getNamespaces.
Y si bien obtengo los valores del primer NAMESPACE , DE LA ESTRUCTURA del archivo , aun no he podido , usar la estructura para poder leer el archivo . AUN NO ME HE TOPADO CON ALGUNA FUNCION QUE ME PUEDA DAR LA SOLUCION, por ahora estoy realizando pruebas con XPath().
La función para obtener namespace:
Desde ya gracias por sus comentarios.
Votes: 0 - Answers: 1 - Views: 13 Share on: Google Facebook Twitter LinkedIn Link
Lectura de archivo XML .¿ Cómo puedo leer la estructura de un XML , que inicia con Namespaces y tiene Namespaces antes que nodos?[Unresolved]
Hola estoy desarrollando una aplicación para leer el contenido de un archivo XML, el cual tiene una estructura definida por el proveedor , este documento sera recibido siempre con la misma o parecida estructura a la siguiente.<?xml version="1.0" encoding="UTF-8"?>
<ar:ApplicationResponse xmlns:ar="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><ext:UBLExtensions><ext:UBLExtension><ext:ExtensionContent><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>VmLvrHdapHSfw7RkSLgIs6aRhW4=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>LqjjcWwWo1MYefir9Mk77ON0cdDbmacq/4H8x4MgioQKRXEeDwSswdq5ZDVodI98XU4S+nJhOAmuIZZu60ueRbNmp1U8XxCR/2L6salLNarUBjutlB8AepqHKHMUC0NXk4/xy6SNb4vv3HU5f5knKN71wPLHqXEAwpmkAXwHs70vSfotH9YB4pIHdgemEpNuB5gKuemKJwsqSM9hb7Rs5Y/rAXWsN3g2BOsG98wVDsgcVTgekJZgFKWxg/ueFOoqe30f0JCaQzkwj2fPQxsqBD4wlLfFF2NwcbArEa1rKOc8Cm080ds4TWSDUZeffC2JeXvq2BjX5r4Z0hiD7dqFrQ==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFDTCCA/WgAwIBAgIQcR21vYFHZBQpIpS4bSJITjANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxLzAtBgNVBAMTJlN5bWFudGVjIENsYXNzIDMgU2VjdXJlIFNlcnZlciBDQSAtIEc0MB4XDTE1MDcwODAwMDAwMFoXDTE4MDgwNjIzNTk1OVowgY8xCzAJBgNVBAYTAlBFMQ0wCwYDVQQIEwRMaW1hMQ0wCwYDVQQHFARMaW1hMUcwRQYDVQQKFD5TVVBFUklOVEVOREVOQ0lBIE5BQyBERSBBRFVBTkFTIFkgREUgQURNSU5JU1RSQUNJT04gVFJJQlVUQVJJQTEZMBcGA1UEAxQQd3d3LnN1bmF0LmdvYi5wZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMHHsPBubtLaQx4K1s2zLVY84lPnhcM35CL9SrbX2pu7+NQaBrCxuNDyPljAm8+duqE4OENo9P234/kmo8gLr0mAVNtyM7jgp9Hg5yraO0ZiW7rvy+cXbAPX/dooxk1kdtaZk2VIIfFIbJYaYuYQqfvm+HJBbiDPYJ+HuTuS2tkfhcaLJ4ZKSsbC1Do2C7tw/HJLE23/EoX+5F4foGofr4mP8ZpU3jHPzRHzT+OnR2bzGylQKRaOx+qK/Ke1hQ6LpZ2bA/WGOB53iHLxVO9hTgjhMJRGJLhSAo4v3MrXsXwOZcZbyjq0QT/9oHSIDuKgcTdDHfgj/FWoTLylzc9DUX0CAwEAAaOCAXMwggFvMCkGA1UdEQQiMCCCEHd3dy5zdW5hdC5nb2IucGWCDHN1bmF0LmdvYi5wZTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIFoDBhBgNVHSAEWjBYMFYGBmeBDAECAjBMMCMGCCsGAQUFBwIBFhdodHRwczovL2Quc3ltY2IuY29tL2NwczAlBggrBgEFBQcCAjAZDBdodHRwczovL2Quc3ltY2IuY29tL3JwYTArBgNVHR8EJDAiMCCgHqAchhpodHRwOi8vc3Muc3ltY2IuY29tL3NzLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUX2DPYZBV34RDFIpgKrL1evRDGO8wVwYIKwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNodHRwOi8vc3Muc3ltY2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8vc3Muc3ltY2IuY29tL3NzLmNydDANBgkqhkiG9w0BAQsFAAOCAQEAAV9RparWSV40OOHKa/XojkjhQpJMUsULfLc1rlVLhUHGPRcLlf+YBEPrQJL5Q/XI3oxEpwZB4dKSZNbJ1ksO/kdC+mPIWEt2j1KfNg3qT+cf7gjFAvxyaYVU2/lRoWgurwN04GzvLNi6PhUm3OLX1D7A5fdBhS8Y9VNVcJ/6Jad8QGC5ozg41b4fZj2IZt450eBqQMNxW2S6aOnx/HGquwf9xPqeCE0f5J6yjwTlZN8kcf1uBZducgkuRkla6/WjmlAM29KnKAWrBCl+ss56rXsSl5H6Jp8G4oiWHEoDs4PGMmzRzpnV7/mnSaoNtEqf7usZpy5bIkhpH9Wtu+An6Q==</X509Certificate>
<X509IssuerSerial>
<X509IssuerName>CN=Symantec Class 3 Secure Server CA - G4, OU=Symantec Trust Network, O=Symantec Corporation, C=US</X509IssuerName>
<X509SerialNumber>150357026262863852396357537837718063182</X509SerialNumber>
</X509IssuerSerial>
</X509Data>
</KeyInfo>
<Proposito>Cumple proposito</Proposito>
<Revocacion>Cumple revocacion</Revocacion>
<TSL>Cumple tsl</TSL>
<Expiracion>No ha expirado</Expiracion>
</Signature>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>201701617256164</cbc:ID>
<cbc:IssueDate>2017-12-13</cbc:IssueDate>
<cbc:IssueTime>00:00:00</cbc:IssueTime>
<cbc:ResponseDate>2017-12-13</cbc:ResponseDate>
<cbc:ResponseTime>09:22:59</cbc:ResponseTime>
<cac:Signature>
<cbc:ID>SignSUNAT</cbc:ID>
<cac:SignatoryParty>
<cac:PartyIdentification>
<cbc:ID>20131312955</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>SUNAT</cbc:Name>
</cac:PartyName>
</cac:SignatoryParty>
<cac:DigitalSignatureAttachment>
<cac:ExternalReference>
<cbc:URI>#SignSUNAT</cbc:URI>
</cac:ExternalReference>
</cac:DigitalSignatureAttachment>
</cac:Signature>
<cbc:Note nombre="jojojo" >4016 - El total valor venta neta de oper. gravadas IGV debe ser mayor a 0.00 o debe existir oper. gravadas onerosas - INFO : 4016 (nodo: "sac:AdditionalMonetaryTotal/cbc:ID" valor: "1001")</cbc:Note>
<cac:SenderParty>
<cac:PartyIdentification>
<cbc:ID>20131312955</cbc:ID>
</cac:PartyIdentification>
</cac:SenderParty>
<cac:ReceiverParty>
<cac:PartyIdentification>
<cbc:ID>20123053037</cbc:ID>
</cac:PartyIdentification>
</cac:ReceiverParty>
<cac:DocumentResponse>
<cac:Response>
<cbc:ReferenceID>F008-00002639</cbc:ReferenceID>
<cbc:ResponseCode>0</cbc:ResponseCode>
<cbc:Description>La Factura numero F008-00002639, ha sido aceptada</cbc:Description>
</cac:Response>
<cac:DocumentReference>
<cbc:ID>F008-00002639</cbc:ID>
</cac:DocumentReference>
<cac:RecipientParty>
<cac:PartyIdentification>
<cbc:ID>6-20325698625</cbc:ID>
</cac:PartyIdentification>
</cac:RecipientParty>
</cac:DocumentResponse>
</ar:ApplicationResponse>Se que para leer un archivo xml, debería usar los nodos e ir recorriendo según la jerarquía de estos . Pero el problema es que incluso el inicio no es un nodo sino un Namespaces , en la documentación solo encontré ejemplos básicos sobre el método getNamespaces.
Y si bien obtengo los valores del primer NAMESPACE , DE LA ESTRUCTURA del archivo , aun no he podido , usar la estructura para poder leer el archivo . AUN NO ME HE TOPADO CON ALGUNA FUNCION QUE ME PUEDA DAR LA SOLUCION, por ahora estoy realizando pruebas con XPath().
La función para obtener namespace:
$sxe = simplexml_load_file("archivo.xml");
$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);
Desde ya gracias por sus comentarios.
Votes: 0 - Answers: 1 - Views: 13 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 17-12-2017 20:07:21 Hola Dyan,
Para cosas complicadas utiliza DOM. Todo lo que mencionas lo puedes hacer con esa extensión. Votes: 0 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In
