Search the FirstSpirit Knowledge Base
Hallo,
für einen Export von Seiten benötige ich den "reinen" text (ohne Links, Formatierung etc.).
Mit Nachfolgenden Zeilen habe ich versucht den Inhalt von einem DomElement zu bekommen.
FormField ff = formData.get(lang,"name");
DomElement de = (DomElement) ff.get();
String text = de.totext(false);
Das funktioniert auch fast. Das Ergebnis sieht so aus:
FIRSTSPIRIT_LINK FIRSTSPIRIT_LINK
Eigentlich müsste das herauskommen, habe ich zumindest gehofft:
zu den Beratungsangeboten Arbeit und Bildung zu den Förderprogrammen Arbeit und Bildung
Ich habe schon versucht über
Element el = de.get();
NodeList nl = el.getChildNodes();
context.logInfo("laenge: " + nl.getLength() );
for(int anz = 0; anz < nl.getLength(); anz++) {
...
}
etwas herauszubekommen, aber ohne Erfolg.
Aussehen des DomElementes siehe Anhang.
Was habe ich falsch gemacht?
Was muss ich tun, damit die Linknamen ausgegeben werden, statt FIRSTSPIRIT_LINK?
Grüße aus Dresden
Andreas
Hy!
Ich mache das ein wenig "unsauberer", aber funktioniert problemlos:
winEintrag.toString.replaceAll("<[^>]*>","")
Einfach alle Tags mit regulärem Ausdruck entfernen.
Hoffe, das hilft Dir weiter!
Grüße
Marcus
Danke. An so was hab ich auch schon gedacht, wollte es aber etwas "sauberer" machen.
Vieleicht hat ja noch jemand einen Tipp.
Edit:
Ganz eigenartig. Auch mit der von Dir vorgeschlagenen Methode funktioniert es nicht. "FIRSTSPIRIT_LINK" steht immer noch da.
Irgendwie liegt es an dem Link selber. Lösche ich den Link, speichere den Absatz und setze dann den Link neu (auf die gleiche Zielseite) ist alles gut. Dann wird mir der Linktest ausgegeben. Auch mit toText(false);
Könnte das etwas mit dem Update auf 2.4R4 zu tun haben? Leider kann ich nicht mehr nachsehen, ob es vorher (also bei 2.4R2) funktionierte. Mir ist erst jetzt der "FIRSTSPIRIT_LINK" aufgefallen.
Grüße
Andreas
Hallo,
getSearchableString(Language language)
sollte den Inhalt jeder Editorkomponente als Text ausgeben.
Beispiel:
$CMS_VALUE(#global.section.data.get("dom").editor.getSearchableString(#global.language))$
Trat das Problem mit "FIRSTSPIRIT_LINK" nur bei einem Link auf, oder ist das ein generelles Problem das jetzt bei allen Eingabekomponenten auftritt?
Viele Grüße
Jörg
Hallo Jörg,
das Problem mit dem "FIRSTSPIRIT_LINK" tritt wie ich es mitbekommen habe nur bei Links auf (insgesammt 17 Stellen im gesamten Webauftritt.
Ihr Bsp. liefert mir folgendes:
http://www.sab.sachsen.de/de/p_is/index.jsp Infrastruktur & Gemeinwesen externeurl
Das ist schon mal schön, aber gibt es eine Möglichkeit, dass der Linktyp und ggf. die Url nicht mit ausgegeben wird?
Eine Frage zu dem Beisspiel (ich verwende das in einem Script):
getData() ist jetzt deprecated. Somit gibts auch keinen getEditor() mehr. Das lieferte ein DomEditorValue. Darin gibts getSearchableString
Wenn ich nun getFormdata() wie empfohlen verwende habe ich noch keine Möglichkeit gefunden an ein DomEditorValue heranzukommen um getSearchableString aufzurufen.
Wie bzw. was muss ich aufrufen?
Grüße
Andreas
Hallo Andreas,
um das Problem mit der deprecated Methode zu vermeiden kann man natürlich noch einen anderen Weg gehen.
Über getFormData()
.get(Language language, String fieldName).
get()
erhält man ein DomElement auf dem man über toText(true) einen String bekommt der lediglich den Text enthält.
Wenn das Problem mit "FIRSTSPIRIT_LINK" an mehreren Stellen auftritt könnte es natürlich sein, dass es mit der Migration zusammen hängt. Evtl. enthalten die Logs Informationen und Fehlermeldungen zu den betreffenden Seiten.
Viele Grüße
Jörg
Hallo Jörg,
Das mit dem toText(..) hatte ich schon verwendet (siehe ersten Eintrag).
Da ich aber das "FIRSTSPIRIT_LINK" erhielt, habe ich gedacht, es gibt einen noch anderen Weg bzw. ich habe etwas falsch gemacht.
Gibt es nicht doch noch irgendeine Möglichkeit ein getSearchableString aufzurufen? Ich habe u.a. noch eine SectionList. Mit dem getSearchableString bekomme ich ganz einfach den Text (wenn ich das deprecated getData()) verwende. Mit getFormData() muss ich mir mühevoller den Inhalt holen:
Über die SectionList iterieren, somit erhalte ich eine EditorSectionImpl. Da habe ich das Problem, dass eine *Impl-Klasse nicht verwendet werden soll. Wenn ich über EditorSectionImpl iteriere komme ich dann zu einem Editor, wo getSearchableString verfügbar ist.
Kann ich die EditorSectionImpl irgendwie umgehen?
Zu dem Problem mit "FIRSTSPIRIT_LINK":
Die Seiten werden ordnungsgemäß generiert, also kein Fehler, keine Warnung, nichts. Die Links funktionieren auch, sowohl in der Vorschau als auch in den veröffentlichten Seiten.
Ich würde das mal als gegeben hinnehmen. Wenn ich einen neuen Link anlege, bekomme ich den Linktext und kein "FIRSTSPIRIT_LINK".
Grüße
Andreas