Grenter XML Parser¶
Esta libreria permite crear objetos PHP a partir de documentos XML.
UBL 2.1
Actualmente solo esta implementada la versión UBL 2.0, aún esta pendiente la implementación de la versión UBL 2.1.
Instalar¶
composer require greenter/xml-parser
Documentos¶
Los documentos disponibles en este paquete son:
| Documento UBL | Parser | Comprobante |
|---|---|---|
| Invoice | InvoiceParser | Factura, Boleta de venta |
| CreditNote | NoteParser | Nota de Crédito |
| DebitNote | NoteParser | Nota de Débito |
| Summary | SummaryParser | Resumen diario |
| Voided | VoidedParser | Comunicación de Baja, Reversion |
| Despatch | DespatchParser | Guía de Remisión |
| Retention | RetentionParser | Retención |
| Perception | PerceptionParser | Percepción |
Uso¶
Los archivo XML serán convertidos a modelos de documentos disponibles en greenter/core, los cuales implementan DocumentInterface.
<?php
use Greenter\Xml\Parser\InvoiceParser;
use Greenter\Xml\Parser\PerceptionParser;
require 'vendor/autoload.php';
$parser = new InvoiceParser();
$xml = file_get_contents('20000000001-01-F001-1.xml');
$factura = $parser->parse($xml);
var_dump($factura);
$parser = new InvoiceParser();
$xml = file_get_contents('20000000001-03-B001-1.xml');
$boleta = $parser->parse($xml);
var_dump($boleta);
$parser = new PerceptionParser();
$xml = file_get_contents('20000000001-40-P001-1.xml');
$percepcion = $parser->parse($xml);
var_dump($percepcion);
También puedes crear tu propia versión, implementando DocumentParserInterface.
<?php
namespace Greenter\Parser;
interface DocumentParserInterface
{
/**
* @param \DomDocument|string $value
*
* @return DocumentInterface
*/
public function parse($value): DocumentInterface;
}