Einfache str2html-Funktion

Meines Wissens nach gibt es in AX 3.0 keine Möglichkeit, Text in (halbwegs) validen HTML-Code umzuwandeln. Deshalb habe ich mir die nachstehende Methode geschrieben, die zumindest die meisten möglichen Zeichen in ihre entsprechenden HTML-Entities umwandelt.

Ich muß aber gleich vorwegnehmen, diese Methode ist ein "Schnellschuß", d.h. sie ist weder gewissenhaft geprüft noch hinsichtlich Performance optimiert worden. Wer dies nachholen möchte, möge mir seine Ergebisse mitteilen ;-)

static str str2html(str _input, boolean _createParagraphs = false)
{
    map entitiesMap = new Map(types::String, types::String);
    mapiterator it;
    str ret;
    ;

    // Benannte Zeichen für HTML-eigene Zeichen
    entitiesmap.insert("\"", """);
    entitiesmap.insert("&", "&");
    entitiesmap.insert("<", "<");
    entitiesmap.insert(">", ">");
    entitiesmap.insert("", " ");
    entitiesmap.insert("¡", "¡");
    entitiesmap.insert("¢", "¢");
    entitiesmap.insert("£", "£");
    entitiesmap.insert("¤", "¤");
    entitiesmap.insert("¥", "¥");
    entitiesmap.insert("¦", "¦");
    entitiesmap.insert("§", "§");
    entitiesmap.insert("¨", "¨");
    entitiesmap.insert("©", "©");
    entitiesmap.insert("ª", "ª");
    entitiesmap.insert("«", "«");
    entitiesmap.insert("¬", "¬");
    entitiesmap.insert("­", "­");
    entitiesmap.insert("®", "®");
    entitiesmap.insert("¯", "¯");
    entitiesmap.insert("°", "°");
    entitiesmap.insert("±", "±");
    entitiesmap.insert("²", "²");
    entitiesmap.insert("³", "³");
    entitiesmap.insert("´", "´");
    entitiesmap.insert("µ", "µ");
    entitiesmap.insert("¶", "¶");
    entitiesmap.insert("·", "·");
    entitiesmap.insert("¸", "¸");
    entitiesmap.insert("¹", "¹");
    entitiesmap.insert("º", "º");
    entitiesmap.insert("»", "»");
    entitiesmap.insert("¼", "¼");
    entitiesmap.insert("½", "½");
    entitiesmap.insert("¾", "¾");
    entitiesmap.insert("¿", "¿");
    entitiesmap.insert("À", "À");
    entitiesmap.insert("Á", "Á");
    entitiesmap.insert("Â", "Â");
    entitiesmap.insert("Ã", "Ã");
    entitiesmap.insert("Ä", "Ä");
    entitiesmap.insert("Å", "Å");
    entitiesmap.insert("Æ", "Æ");
    entitiesmap.insert("Ç", "Ç");
    entitiesmap.insert("È", "È");
    entitiesmap.insert("É", "É");
    entitiesmap.insert("Ê", "Ê");
    entitiesmap.insert("Ë", "Ë");
    entitiesmap.insert("Ì", "Ì");
    entitiesmap.insert("Í", "Í");
    entitiesmap.insert("Î", "Î");
    entitiesmap.insert("Ï", "Ï");
    entitiesmap.insert("Ð", "Ð");
    entitiesmap.insert("Ñ", "Ñ");
    entitiesmap.insert("Ò", "Ò");
    entitiesmap.insert("Ó", "Ó");
    entitiesmap.insert("Ô", "Ô");
    entitiesmap.insert("Õ", "Õ");
    entitiesmap.insert("Ö", "Ö");
    entitiesmap.insert("×", "×");
    entitiesmap.insert("Ø", "Ø");
    entitiesmap.insert("Ù", "Ù");
    entitiesmap.insert("Ú", "Ú");
    entitiesmap.insert("Û", "Û");
    entitiesmap.insert("Ü", "Ü");
    entitiesmap.insert("Ý", "Ý");
    entitiesmap.insert("Þ", "Þ");
    entitiesmap.insert("ß", "ß");
    entitiesmap.insert("à", "à");
    entitiesmap.insert("á", "á");
    entitiesmap.insert("â", "â");
    entitiesmap.insert("ã", "ã");
    entitiesmap.insert("ä", "ä");
    entitiesmap.insert("å", "å");
    entitiesmap.insert("æ", "æ");
    entitiesmap.insert("ç", "ç");
    entitiesmap.insert("è", "è");
    entitiesmap.insert("é", "é");
    entitiesmap.insert("ê", "ê");
    entitiesmap.insert("ë", "ë");
    entitiesmap.insert("ì", "ì");
    entitiesmap.insert("í", "í");
    entitiesmap.insert("î", "î");
    entitiesmap.insert("ï", "ï");
    entitiesmap.insert("ð", "ð");
    entitiesmap.insert("ñ", "ñ");
    entitiesmap.insert("ò", "ò");
    entitiesmap.insert("ó", "ó");
    entitiesmap.insert("ô", "ô");
    entitiesmap.insert("õ", "õ");
    entitiesmap.insert("ö", "ö");
    entitiesmap.insert("÷", "÷");
    entitiesmap.insert("ø", "ø");
    entitiesmap.insert("ù", "ù");
    entitiesmap.insert("ú", "ú");
    entitiesmap.insert("û", "û");
    entitiesmap.insert("ü", "ü");
    entitiesmap.insert("ý", "ý");
    entitiesmap.insert("þ", "þ");
    entitiesmap.insert("ÿ", "ÿ");
    // Benannte Zeichen für diverse Symbole (unvollständig)
    entitiesmap.insert("•", "•");
    entitiesmap.insert("™", "™");
    entitiesmap.insert("€", "€");
    // Benannte Zeichen lateinisch erweitert
    entitiesmap.insert("Œ", "Œ");
    entitiesmap.insert("œ", "œ");
    entitiesmap.insert("Š", "Š");
    entitiesmap.insert("š", "š");
    entitiesmap.insert("Ÿ", "Ÿ");
    entitiesmap.insert("ƒ", "ƒ");
    // Benannte Zeichen für Interpunktion
    entitiesmap.insert("–", "–");
    entitiesmap.insert("—", "—");
    entitiesmap.insert("‘", "‘");
    entitiesmap.insert("’", "’");
    entitiesmap.insert("‚", "‚");
    entitiesmap.insert("“", "“");
    entitiesmap.insert("”", "”");
    entitiesmap.insert("„", "„");
    entitiesmap.insert("†", "†");
    entitiesmap.insert("‡", "‡");
    entitiesmap.insert("…", "…");
    entitiesmap.insert("‰", "‰");
    entitiesmap.insert("‹", "‹");
    entitiesmap.insert("›", "›");
    // Benannte Zeichen für diakritische Zeichen
    entitiesmap.insert("ˆ", "ˆ");
    entitiesmap.insert("˜", "˜");

    it = new mapIterator(entitiesMap);

    ret = _input;
    while (it.more())
    {
        ret = strReplace(ret, it.key(), it.value());
        it.next();
    }

    // Zeilenumbrüche
    if ( _createParagraphs )
    {
        ret = strReplace(ret, '\n\n', ''); 
        ret = strReplace(ret, '\n', ''); 
    } 

    return ret; 
}
Dieser Beitrag bezieht sich auf die Version:
Axapta 3.0

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
Juni 2022
MoDiMiDoFrSaSo
 12345
6789101112
13141516171819
20212223242526
27282930 
 
© 2006-2022 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu