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

 
 

 

 
 
 
Beiträge des aktuellen Monats
November 2024
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
252627282930 
 
© 2006-2024 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