NAME

Quiq::Zugferd::Tree - Operatonen auf ZUGFeRD-Baum

BASE CLASS

Quiq::Hash

DESCRIPTION

Ein ZUGFeRD-Baum ist die Repräsentation von ZUGFeRD-XML in Form einer Perl-Datenstruktur. Diese Repräsentation wird genutzt, um die XML-Struktur geeignet bearbeiten zu können.

METHODS

Klassenmethoden

new() - Konstruktor

Synopsis

$ztr = $class->new($ref);

Description

Instantiiere einen ZUGFeRD-Baum und liefere eine Referenz auf dieses Objekt zurück.

Objektmethoden

getMultiElement() - Liefere Mehrfach-Element

Synopsis

$ztr = $ztr->getMultiElement($keyPath,$placeholder)

Arguments

$keyPath

Pfad zu Array

$placeholder

Name des Platzhalters

Description

Liefere die Struktur, die das erste Element des Arrays iat, das $keyPath referenziert, und ersetze die Referenz durch den Platzhalter $placeholder.

reduceTree() - Reduziere den Baum

Synopsis

$ztr->reduceTree;
$ztr->reduceTree($sub);

Arguments

$sub

Referenz auf Subroutine, die unaufgelöste Werte entfernt. Default:

sub {
    my $val = shift;
    if (defined $val && $val =~ /^__\w+__$/) {
        $val = undef;
    }
    return $val;
}

Description

Reduziere den ZUGFeRD-Baum auf ein Minumum, d.h.

  • Entferne alle Knoten mit unaufgelösten Werten

  • Entferne alle leeren Knoten

resolvePlaceholders() - Ersetze Platzhalter

Synopsis

$ztr->resolvePlaceholders(@keyVal);

Arguments

@keyVal

Liste der Platzhalter und ihrer Werte

Description

Durchlaufe den ZUGFeRD-Baum rekursiv und ersetze auf den Blattknoten die Platzhalter durch ihre Werte.

Fehlt einer der Platzhalter (key) im Baum, wird eine Exception geworfen.

VERSION

1.226

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2025 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.