xmlobj.cpp
author insilmaril
Wed, 09 Jun 2010 13:14:08 +0000
changeset 847 43268373032d
parent 791 f1006de05c54
permissions -rw-r--r--
1.13.4 Various fixes
insilmaril@621
     1
#include "xmlobj.h"
insilmaril@621
     2
insilmaril@621
     3
#include <QRegExp>
insilmaril@721
     4
#include <QString>
insilmaril@621
     5
insilmaril@621
     6
insilmaril@621
     7
// returns masked "<" ">" "&"
insilmaril@621
     8
QString quotemeta(const QString &s)
insilmaril@621
     9
{
insilmaril@621
    10
	QString r=s;
insilmaril@621
    11
    QRegExp  rx("&(?!amp;)");
insilmaril@621
    12
    r.replace ( rx,"&amp;");
insilmaril@621
    13
    rx.setPattern( ">");
insilmaril@621
    14
    r.replace ( rx,"&gt;");
insilmaril@621
    15
    rx.setPattern( "<");
insilmaril@621
    16
    r.replace ( rx,"&lt;");
insilmaril@621
    17
    rx.setPattern( "\"");
insilmaril@621
    18
    r.replace ( rx,"&quot;");
insilmaril@621
    19
    return r;
insilmaril@621
    20
}
insilmaril@621
    21
insilmaril@847
    22
QString quoteUmlaut(const QString &s)
insilmaril@847
    23
{
insilmaril@847
    24
	QString r=s;
insilmaril@847
    25
    QRegExp rx( "ü");
insilmaril@847
    26
    r.replace ( rx,"&uuml;");
insilmaril@847
    27
    rx.setPattern( "Ü");
insilmaril@847
    28
    r.replace ( rx,"&Uuml;");
insilmaril@847
    29
    rx.setPattern( "ö");
insilmaril@847
    30
    r.replace ( rx,"&ouml;");
insilmaril@847
    31
    rx.setPattern( "Ö");
insilmaril@847
    32
    r.replace ( rx,"&Ouml;");
insilmaril@847
    33
    rx.setPattern( "ä");
insilmaril@847
    34
    r.replace ( rx,"&auml;");
insilmaril@847
    35
    rx.setPattern( "Ö");
insilmaril@847
    36
    r.replace ( rx,"&Auml;");
insilmaril@847
    37
    rx.setPattern( "ß");
insilmaril@847
    38
    r.replace ( rx,"&szlig;");
insilmaril@847
    39
    rx.setPattern( "€");
insilmaril@847
    40
    r.replace ( rx,"&euro;");
insilmaril@847
    41
    return r;
insilmaril@847
    42
}
insilmaril@847
    43
insilmaril@847
    44
insilmaril@621
    45
insilmaril@621
    46
insilmaril@621
    47
int XMLObj::actindent=0;		// make instance of actindent
insilmaril@621
    48
insilmaril@621
    49
XMLObj::XMLObj()
insilmaril@621
    50
{
insilmaril@621
    51
    indentwidth=4;
insilmaril@621
    52
}
insilmaril@621
    53
insilmaril@791
    54
XMLObj::~XMLObj()
insilmaril@791
    55
{
insilmaril@791
    56
}
insilmaril@791
    57
insilmaril@621
    58
insilmaril@621
    59
// returns <s at />
insilmaril@621
    60
QString XMLObj::singleElement(QString s, QString at)
insilmaril@621
    61
{
insilmaril@621
    62
    return indent() + "<" + s +" " + at +" " + "/>\n";
insilmaril@621
    63
}
insilmaril@621
    64
insilmaril@621
    65
// returns <s>
insilmaril@621
    66
QString XMLObj::beginElement(QString s)
insilmaril@621
    67
{
insilmaril@621
    68
    return indent() + "<" + s + ">\n";
insilmaril@621
    69
}
insilmaril@621
    70
insilmaril@621
    71
// returns <s at>
insilmaril@621
    72
QString XMLObj::beginElement(QString s, QString at)
insilmaril@621
    73
{
insilmaril@621
    74
    return indent() + "<" + s + " " + at + ">\n";
insilmaril@621
    75
}
insilmaril@621
    76
insilmaril@621
    77
// returns </s>
insilmaril@621
    78
QString XMLObj::endElement(QString s)
insilmaril@621
    79
{
insilmaril@621
    80
    return indent() + "</" + s + ">\n";
insilmaril@621
    81
}
insilmaril@621
    82
insilmaril@621
    83
// returns  at="val"
insilmaril@621
    84
QString XMLObj::attribut(QString at, QString val)
insilmaril@621
    85
{
insilmaril@621
    86
    return " " + at + "=\"" + quotemeta (val) + "\""; 
insilmaril@621
    87
}
insilmaril@621
    88
insilmaril@621
    89
// returns <s> val </s>
insilmaril@621
    90
QString XMLObj::valueElement(QString el, QString val)
insilmaril@621
    91
{
insilmaril@621
    92
    return indent() + "<" + el + ">" + quotemeta(val) + "</" +el + ">\n";
insilmaril@621
    93
}
insilmaril@621
    94
insilmaril@621
    95
// returns <s at> val </s>
insilmaril@621
    96
QString XMLObj::valueElement(QString el, QString val, QString at)
insilmaril@621
    97
{
insilmaril@621
    98
    return indent() + "<" + el + " " + at + ">" + quotemeta(val) + "</" +el + ">\n";
insilmaril@621
    99
}
insilmaril@621
   100
insilmaril@621
   101
void XMLObj::incIndent()
insilmaril@621
   102
{
insilmaril@621
   103
    actindent++;
insilmaril@621
   104
}	
insilmaril@621
   105
insilmaril@621
   106
void XMLObj::decIndent()
insilmaril@621
   107
{
insilmaril@621
   108
    actindent--;
insilmaril@621
   109
    if (actindent<0) actindent=0;
insilmaril@621
   110
}	
insilmaril@621
   111
insilmaril@621
   112
QString XMLObj::indent()
insilmaril@621
   113
{
insilmaril@621
   114
    QString s;
insilmaril@621
   115
    int i;
insilmaril@621
   116
    for (i=0; i<actindent*indentwidth; i++)
insilmaril@621
   117
    {
insilmaril@621
   118
		s= s + " ";
insilmaril@621
   119
    }
insilmaril@621
   120
    return s;
insilmaril@621
   121
}	
insilmaril@621
   122