Formatierungsfehler in XML bei Verwendung von dotliquid

Intronic

Aktives Mitglied
28. Februar 2012
47
6
Hallo,

ich habe ein recht spezielles Problem. Mit der Einsortierung in die richtige Forenkategorie habe ich mich schwer getan, hoffe hier ist das Thema richtig adressiert.

Wir arbeiten aktuell an einer SCX-Anbindung eine Marktplatzes. Es ist nicht Kaufland.de, sondern Voelkner.de aber die Funktionsweise ist ja die Gleiche.

Der Marktplatz erwartet als Wert für das Attribut 'state' eine Zahl 1-4. Wenn ich diese Zahl fest in der Konfiguration eintrage, funktioniert es ohne Probleme, in der Übertragenen XML-Datei kommt folgendes an.

...<attribute><code>state</code><value>3</value></attribute></product></products>

Nun möchte ich per Dotliquid unsere Attributwerte in die vom Markplatz erwarteten Werte übersetzen

{% if Vorgang.Attribute.Global.Eigene_Attribiute.Artikelzustand.Einsprachig == 'A' %}1
{% elsif Vorgang.Attribute.Global.Eigene_Attribiute.Artikelzustand.Einsprachig == 'A-' %}2
{% elsif Vorgang.Attribute.Global.Eigene_Attribiute.Artikelzustand.Einsprachig == 'B+' %}3
{% elsif Vorgang.Attribute.Global.Eigene_Attribiute.Artikelzustand.Einsprachig == 'B' %}4
{%endif%}

In der Dotliquid Vorschau funktioniert das ebenfalls einwandfrei. In der übertragenen XML Datei kommt jedoch folgendes an

...<attribute><code>state</code><value>3&#13; <-- Dateiende

Habt ihr einen Tipp für mich? Vielen Dank vorab.

Christoph
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.877
563
das Zeichen &#13; rutscht da mit rein, weil du in deinen Bedingungen nach jeder Zahl noch ein (für dich unsichtbares) Sonderzeichen drin hast (CR = Carriage Return = Wagenrücklauf).

Du musst deine If-Bedingungen also so schreiben, dass jeweils nur die Ziffer ausgeben wird.
Also entweder alles in eine Zeile, oder wenn du es aus Gründen der besseren Lesbarkeit im Block haben willst, geht vielleicht auch so in der Art:
Code:
(
   if blabla)1(
      elseif blabla)2(
      elseif bla)3(
      elseif bla)4(
   endif
)
 
  • Gefällt mir
Reaktionen: Intronic

Intronic

Aktives Mitglied
28. Februar 2012
47
6
Das ist die Lösung! Vielen Dank, du hast mir den Tag gerettet 🙂

Viele Grüße
Christoph
 

Ähnliche Themen