Kann ich mit PHP 8 ein ZUGFeRD-XML-Dokument einlesen und die Infos verarbeiten?

Antwort vom

Ja. Mit PHP 8 kannst du ein **ZUGFeRD-XML-Dokument** einlesen und die enthaltenen Informationen verarbeiten, z. B. mit: - `SimpleXML` - `DOMDocument` - `XMLReader` Typisch ist: 1. XML-Datei laden 2. Namespaces beachten 3. Felder wie Rechnungsnummer, Datum, Beträge, Verkäufer, Käufer auslesen 4. Daten weiterverarbeiten oder in Datenbank speichern Ein einfaches Beispiel mit `SimpleXML`: ```php <?php $xml = simplexml_load_file('zugferd.xml'); if ($xml === false) { die('XML konnte nicht geladen werden'); } $namespaces = $xml->getNamespaces(true); print_r($namespaces); ``` Oft nutzt ZUGFeRD mehrere Namespaces, deshalb reicht einfaches Auslesen ohne Namespace-Behandlung meist nicht aus. Mit `DOMDocument`: ```php <?php $dom = new DOMDocument(); $dom->load('zugferd.xml'); $xpath = new DOMXPath($dom); $xpath->registerNamespace('rsm', 'urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100'); $xpath->registerNamespace('ram', 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100'); $nodes = $xpath->query('//ram:ID'); foreach ($nodes as $node) { echo $node->nodeValue . PHP_EOL; } ``` Wichtig: - ZUGFeRD ist nicht einfach „beliebiges XML“, sondern ein **strukturiertes Rechnungsformat** - je nach Version (**ZUGFeRD 1.x, 2.x / Factur-X**) unterscheiden sich Struktur und Namespaces - häufig steckt die XML nicht als einzelne Datei vor, sondern **eingebettet in eine PDF/A-3-Rechnung** Dafür gilt: - **reines XML einlesen**: ja, direkt mit PHP 8 - **XML aus eingebetteter PDF extrahieren**: auch möglich, aber aufwendiger, oft mit Zusatzbibliotheken Für produktive Verarbeitung ist oft eine spezialisierte Bibliothek sinnvoll, z. B.: - https://www.mustangproject.org/ - https://www.php.net/manual/de/book.simplexml.php - https://www.php.net/manual/de/class.domdocument.php Kurzantwort: **Ja, PHP 8 kann ZUGFeRD-XML einlesen und verarbeiten.** Die größte Herausforderung ist meist nicht PHP selbst, sondern die korrekte Behandlung von **Namespaces, ZUGFeRD-Version und ggf. eingebetteter XML in PDF/A-3**.

Kategorie: Technologie Tags: PHP ZUGFeRD XML

Verwandte Fragen

Tabs und Zeilenumbrüche in XML-Dateien sichtbar und direkt editierbar machen?

Ja. Das geht – aber nicht durch XML selbst, sondern durch den Editor bzw. die Darstellung. Kurz gesagt: Zeilenumbrüche in Textelementen sind in XML grundsätzlich vorhanden und editier...

Kann man in XML mehrzeiligen Text in einem Tag speichern?

Ja. In XML kann ein Tag mehrzeiligen Text enthalten, zum Beispiel: xml <text> Das ist Zeile 1. Das ist Zeile 2. Das ist Zeile 3. </text> Wichtig: Zeilenumbrüche im Inhalt sind erl...

Wie speichert ein XML-Dataset deutsche Umlaute?

In XML werden deutsche Umlaute normalerweise direkt als Unicode-Zeichen gespeichert: ä ö ü Ä Ö Ü ß Wichtig ist dabei die Zeichenkodierung, meist: UTF-8 UTF-16 Typ...

ZIP-Unterstützung in PHP aktivieren

Die ZIP-Unterstützung in PHP aktivierst du über die Erweiterung zip bzw. php-zip. Linux (Debian/Ubuntu): bash sudo apt install php-zip sudo systemctl restart apache2 Bei PHP-FPM stattdesse...

Unterstützt meine PHP-Installation ZIP?

Prüfe in PHP, ob die ZIP-Erweiterung verfügbar ist: php <?php if (classexists('ZipArchive')) { echo 'ZIP wird unterstützt'; } else { echo 'ZIP wird nicht...

Bringt es einen technischen Vorteil, eine XML-Datei mit der Endung .xml zu speichern, oder kann sie verlustfrei auch als .txt gespeichert werden?

Ja — inhaltlich verlustfrei kann eine XML-Datei auch als .txt gespeichert werden, sofern der Inhalt und die Zeichenkodierung unverändert bleiben. Technischer Vorteil von .xml: Betriebssyst...

Regex in PHP: Wie lassen sich auf der Seite die ArtNr mit EF- und die Anzahl direkt vor „Stk“ extrahieren?

Für diese Seite passt in PHP z. B. dieses Regex: php \b(EF-[A-Z0-9-]+)\b.?\b(\d+)\sStk\s+sofort\bi Gruppe 1 = ArtNr, z. B. EF-7310-S Gruppe 2 = Anzahl, z. B. 16 (servietten-wimmel.de) Beispiel...