Projekt

Allgemein

Profil

Fehler #83

odt-Parser erzeugt fehlerhafte Rechnung mit inkonsistenter content.xml

Von Andreas Rudin vor etwa 9 Jahren hinzugefügt. Vor etwa 9 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
-
Beginn:
04.09.2015
Abgabedatum:
% erledigt:

100%

Geschätzter Aufwand:

Beschreibung

Seit dem Commit fc2fbbca36f5ac516fdae260e9322fc3d357497c werden beim Erstellen von odt-Rechnungen unter gewissen Umständen fehlerhafte odt-Dateien erzeugt.
Der Fehler besteht darin, dass in der innerhalb der odt-Datei eingepackten Datei content.xml <span>-Tags falsch gesetzt werden, so dass die Tag-Hierarchie innerhalb der xml-Datei durcheinander gerät.

Beim Öffnen der odt-Datei bringt LibreOffice folgende Fehlermeldung:
"Lesefehler.
Formatfehler in Teildokument content.xml an Position 1,65037(Zeile,Spalte) in der Datei entdeckt."

Eine aus der gleichen Rechnung erzeugte odt-Datei beim Stand von Commit 3b32e1ddebd2304859df8f2322f8fc27ad94136f wird korrekt erzeugt.

Hier ein Ausschnitt aus beiden Versionen der content.xml:

commit 3b32e1d :
(Spalte 63066ff:)
"<table:table-cell table:style-name="Table2.B2" office:value-type="string"><text:p text:style-name="P45">ADE!geranium-Monitor<text:line-break/><text:span text:style-name="T9"><p>Das Multifunktionsgerät smart-me ist der ideale Begleiter zum ADE!geranium. Smart-me wird zwischen Steckdose und ADE!geranium eingesteckt und überträgt die Produktionsdaten via WLAN ins Netz. Dadurch sind die ADE!geranium Ertragsdaten immer auf Ihrem Smartphone oder Tablet verfügbar. </p><p>Funktionen:<br />- Leistungs- und Energiemessung mit höchster Genauigkeit<br />- Zugriff via Smartphone, Tablet oder Computer<br />- Fern- und Zeitschalter<br />- Temperaturmessung<br />- Messwerte in Echtzeit<br />- Konfigurierbare Ereignisse und Aktionen<br />- Email Alarm / Push Alarm<br />- Zahlreiche Auswertungen und Diagramme<br />- Einfache Installation<br />- Geeignet für die Messung von kleinen Standby Verbraucher<br />- Niedriger Eigenverbrauch<br />- Keine zusätzlichen Kosten</p><p>Mindestanforderung:<br />- iOS / Adroid Smartphone oder Tablet<br />- kostenlose smart-me App<br />- WIFI Netzwerk </p><p>Technische Daten:<br />Spannung 110 - 230V<br />Netzfrequenz 50/60Hz<br />Maximaler Strom 16A<br />Messbereich 0.1 - 3680W<br />Messgenauigkeit 1% (class 1)<br />WIFI WEP, WPA, WPA2<br />Schutzklasse IP20</p><</text:span><text:span text:style-name="T11">%</text:span><text:span text:style-name="Source_20_Text"><text:span text:style-name="T4">serialnumber%</text:span></text:span><text:span text:style-name="Source_20_Text"><text:span text:style-name="T3">></text:span></text:span></text:p></table:table-cell>

commit fc2fbbc :
(Spalte 64576ff:)
"<table:table-cell table:style-name="Table2.B2" office:value-type="string"><text:p text:style-name="P45">ADE!geranium-Monitor<text:line-break/><text:span text:style-name="T9">Das Multifunktionsgerät smart-me ist der ideale Begleiter zum ADE!geranium. Smart-me wird zwischen Steckdose und ADE!geranium eingesteckt und überträgt die Produktionsdaten via WLAN ins Netz. Dadurch sind die ADE!geranium Ertragsdaten immer auf Ihrem Smartphone oder Tablet verfügbar. </text:p><text:p text:style-name="T9">Funktionen:<text:line-break/>- Leistungs- und Energiemessung mit höchster Genauigkeit<text:line-break/>...."

Der Parser "stolpert"* offensichtlich über die Zeichenfolge: </p&gt und interpretiert diese mit </text:p> als schliessenden Tag zu <text:p text:style-name="P45">, ohne dass vorher der später geöffnete Tag <text:span text:style-name="T9"> wieder geschlossen wird.

Historie

#1

Von Moritz Bunkus vor etwa 9 Jahren aktualisiert

Ich konnte das durchaus nachstellen und habe vorhin einen potenziellen Fix gepusht: a2be45a1fb3e4f1ad0a906699095985b42e05ed5. Bitte mal testen.

#2

Von Andreas Rudin vor etwa 9 Jahren aktualisiert

  • Status wurde von Neu zu Erledigt geändert
  • % erledigt wurde von 0 zu 100 geändert

Seit dem Fix von Moritz ist der Fehler nicht mehr aufgetreten. Ich schliesse das Ticket deshalb als erledigt.

Auch abrufbar als: Atom PDF