Saltar a contenido

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;
}