Rendern von DomElementen im Executable ermöglichen

Hallo zusammen,

in der aktuellen API 5.2.313 lassen sich die Werte von so gut wie allen Eingabekomponenten im Executeable auslesen. Leider trifft das nicht auf das Element CMS_INPUT_DOM zu.

Ruft man die Methode domElement.toText(true) auf wird zwar der Inhalt des DomElements ausgegeben, aber im Fall das der DomText Verweise auf Linktemplates enthält, wird nur der Referenzname des Linktemplates nicht aber der gerenderte Inhalt ausgegeben.

Beispiel für: Domtext mit Linktemplate headline_2

<headline_2>Welcome to FirstSpirit</headline_2>

<p>Lorem ipsum</p>

anstatt

<h2>Welcome to FirstSpirit</h2>

<p>Lorem ipsum</p>

Im Normalfall werden DomElemente im Template gerendert, allerdings gibt es auch den Fall von technischen Elementen wie XML's die über eine XSD validiert und über eine Schnittstelle transferiert werden sollen.

Das lässt sich im Java Executablekontext wesentlich einfacher implementieren und validieren als in einem Template.

XSD -> generate Java classes -> Export content from FS -> validate -> XML

Daher benötigen wir dringend eine Möglichkeit den vollständig gerenderten Text aus dem DomElement zu erhalten.

Danke und Viele Grüße

Lars

1 Comment
witt
I'm new here

Hallo Lars,

ich hab es zwar selbst nicht ausprobiert, aber mit FirstSpirit 5.2.1503 wurde ein Agent (RenderingAgent) zum rendern von Fragmenten erzeugt. Eventuell hilft euch das ja weiter?

final String domOutput = context.requireSpecialist(RenderingAgent.TYPE)

  .createRenderer("$CMS_VALUE(dom)$")

  .linkRoot(pageRef) => auf Basis welchen Nodes soll die Ausgabe erzeugt werden

  .additionalContext("node", node) => die Seite/der Absatz auf dessen der DOM gerendert werden soll

  .render();

Viele Grüße,

Daniel