Freitag, Juni 15, 2007

& = und

Jetzt habe ich mal wieder an meinem Templategenerator (genannt DBXML) gebastelt, der aus XML Daten und Templates beliebige andere Textdateien zaubert. In meinem Falle Source Code und SQL Skripte.

Ich wollte einen IF-Tag mit Bedingungsaudrücken haben, der einfache Vergleiche (=, !=), die üblichen logischen Operatoren (&, |, !) und Klammerungen beherrscht. Und in weniger als zwei Stunden hatte ich mir einen Parser für diese Ausdrücke gestrickt, der 1a funktioniert.

Nur, als ich es dann ausprobiert habe, fiel mir auf, dass '&' (logisches Und) in XML ein Sonderzeichen (aka Entity) einleitet. Gna. Daran hätte ich auch früher denken können.
D.h. ich muss meine Bedingungen
derzeit so schreiben:
"${table.name} != definitions & ${column.type} = ID"

Mist, Mist, Mist. Kennt jemand noch ein anderes ASCII Symbol für ein logisches Und?

1 Kommentar:

Stroboskop hat gesagt…

Ich habe jetzt auch noch '#' als logisches Und genommen und kleiner/größer Vergleiche mit < und > (seufz) hinzugefügt.

Dafür habe ich analog ruckzuck einen Parser für die vier Grundrechenarten geschrieben, während ich dabei gechattet habe.