7 // returns masked "<" ">" "&"
8 QString quotemeta(const QString &s)
11 QRegExp rx("&(?!amp;)");
12 r.replace ( rx,"&");
14 r.replace ( rx,">");
16 r.replace ( rx,"<");
18 r.replace ( rx,""");
22 QString unquotemeta(const QString &s)
27 rx.setPattern( ">");
29 rx.setPattern( "<");
31 rx.setPattern( """);
36 QString quoteQuotes(const QString &s)
40 r.replace ( rx,"\\\"");
44 QString unquoteQuotes(const QString &s)
52 QString quoteUmlaut(const QString &s)
56 r.replace ( rx,"ü");
58 r.replace ( rx,"Ü");
60 r.replace ( rx,"ö");
62 r.replace ( rx,"Ö");
64 r.replace ( rx,"ä");
66 r.replace ( rx,"Ä");
68 r.replace ( rx,"ß");
70 r.replace ( rx,"€");
74 QString getCDATA(const QString &s)
76 // Do we need to use CDATA after all?
77 if (s.contains("<") || s.contains(">") || s.contains("\"") || s.contains("&") )
79 QStringList list = s.split("]]>");
80 int i = s.indexOf("]]>");
82 // split up and calculate recursively
83 return getCDATA(s.left(i+2)) + getCDATA(s.right(s.length() - i - 2));
85 return "<![CDATA[" + s + "]]>";
90 int XMLObj::curIndent=0; // make instance of curIndent
103 QString XMLObj::singleElement(QString s, QString at)
105 return indent() + "<" + s +" " + at +" " + "/>";
109 QString XMLObj::beginElement(QString s)
111 return indent() + "<" + s + ">";
115 QString XMLObj::beginElement(QString s, QString at)
117 return indent() + "<" + s + " " + at + ">";
121 QString XMLObj::endElement(QString s)
123 return indent() + "</" + s + ">";
127 QString XMLObj::attribut(QString at, QString val)
129 return " " + at + "=\"" + quotemeta(val) + "\"";
132 // returns <s> val </s>
133 QString XMLObj::valueElement(QString el, QString val)
135 return indent() + "<" + el + ">" + val + "</" +el + ">";
138 // returns <s at> val </s>
139 QString XMLObj::valueElement(QString el, QString val, QString at)
141 return "<" + el + " " + at + ">" + val + "</" +el + ">";
144 void XMLObj::incIndent()
149 void XMLObj::decIndent()
152 if (curIndent<0) curIndent=0;
155 QString XMLObj::indent()
159 for (i=0; i < curIndent * indentWidth; i++)