aVogt
Returning Creator

CMS_Funktion tabelle <![CDATA[ als String pro Zelle mit ausgeben

Hallo,

ich soll aus Seiten u.a. mit einer DOM-Tabelle eine XML-Datei machen (das sind spezielle Seiten mit wenig zugelassenen Absätzen).

Ich will nun über die "CMS_Funktion tabelle" gehen. Das scheint auch so weit zu klappen.

Die einzelnen Werte der Zellen (innerhalb von "CELLSPEC") wollte ich in einen <![CDATA[ .... ]]> augeben. Beim Speichern bekomme ich die Meldung "tag 'CELLSPEC' not closed".

Eine Möglichkeit die ich gefunden habe ist über eine Formatvorlage zu gehen. Innerhalb von CellSPAC rufe ich

     $CMS_RENDER(template:"sssssssssss",f_content:#content)$

auf. Und in dem Tamplate baue ich das "CDATA" drumherum. Das funktioniert.

Geht dass auch einfacher indem das <![CDATA[ .... ]]> "irgedwie im CELLSPEC als "nicht zu interpretieren" markiert wird?

0 Kudos
8 Replies
Peter_Jodeleit
Crownpeak employee

Geht dass auch einfacher indem das <![CDATA[ .... ]]> "irgedwie im CELLSPEC als "nicht zu interpretieren" markiert wird?

Es sollte reichen, die spitzen Klammern durch Entitäten zu ersetzen:

<CELLSPEC name="BEZEICHNER">&lt;![CDATA[...]]&gt;</CELLSPEC>

Peter

Hallo Herr Jodeleit,

im ersten Versuch klappt das schon.

Allerdings haben wir in dem Text der ausgegeben werden soll unter anderem auch ein "&" (z.B. in Standard & Poor‘s) stehen. Dann kommt es mit Ihrem zu einem Fehler (mit "<" statt "&lt;" kommt der fehler nicht).

Grüße aus Dresden

Andreas

0 Kudos

Eventuell hilft es, Quelltext(-Fragment) zu posten. Ein Ersetzen aller spitzen Klammern und Kaufmanns-Und-Zeichen durch die entsprechenden Entitäten müsste zu gültigem XML führen.

--Peter

Peter
0 Kudos

Mit dem erstezne klappt das dann. Nur steht dann halt auch ein "&amp;" statt einem "&" in der XML-Datei. Dass muss dann beim Import wieder umgewandelt werden. und der "<![CDATA ..." sieht dann so aus: "&lt;![CDATA ...".

Mir ist das relativ egal, aber es soll ja auch relativ einfach in die Zielanwendung importiert bzw. ausgewertet werden können.

0 Kudos

Nur steht dann halt auch ein "&amp;" statt einem "&" in der XML-Datei.

Im Template meinst du? In der Ausgabe steht wieder ein "&"... (das macht der XML-Parser ja transparent).

Peter
0 Kudos

In der Ansicht der XML-Datei schon, aber nicht im Quelltext.

Wie gesagt ich habe keine Ahnung wie die XML-Datei weiter verarbeitet wird, da dies nicht in unserem haus geschieht.

0 Kudos

Leider weiss ich nicht, was du mit Quelltext meinst. Ich kann nur sagen, was FirstSpirit macht. Und das schreibt "<![CDATA[ Standard & Poor‘s ]]>" wenn im Template "<CELLSPEC ...>&lt;![CDATA[ Standard &lt; Poor's ]]&gt;</CELLSPEC>" steht.

Ich vermute aber, das der Text "Standard & Poor's" aus einer Komponente kommt und daher durch eine Ersetzungsregel das "&" wieder in eine Entität umwandelt. D.h. du müsstest das wieder rückgängig machen. Z.B. $CMS_VALUE(hurz.replaceAll("&lt;", "&"))$.

Eine Frage: Wäre es nicht einfacher, das statt dem CDATA in die Ausgabe einen normalen Textknoten zu schreiben?

Peter
0 Kudos

Da hab ich wohl noch etwas falsch eingestellt.

Bei mir steht im Quelltext (in der generierten Datei)

&lt;![CDATA[Standard & Poor's]]&gt;

0 Kudos