6 // returns masked '<' '>' '&' '"'
7 QString quoteMeta(const QString &s)
10 QRegExp rx("&(?!amp;)");
11 r.replace(rx, "&");
13 r.replace(rx, ">");
15 r.replace(rx, "<");
17 r.replace(rx, """);
23 QString unquoteMeta(const QString &s)
28 rx.setPattern(">");
30 rx.setPattern("<");
32 rx.setPattern(""");
34 rx.setPattern("\\\\n");
39 QString quoteQuotes(const QString &s)
44 r.replace(rx, "\\\"");
52 QString unquoteQuotes(const QString &s)
59 rx.setPattern("\\\\n");
65 QString getCDATA(const QString &s)
67 // Check, if we need to use CDATA after all
68 if (s.contains("<") || s.contains(">") || s.contains("\"") ||
70 QStringList list = s.split("]]>");
71 int i = s.indexOf("]]>");
73 // split up and calculate recursively
74 return getCDATA(s.left(i + 2)) +
75 getCDATA(s.right(s.length() - i - 2));
77 return "<![CDATA[" + s + "]]>";
83 int XMLObj::curIndent = 0; // make instance of curIndent
85 XMLObj::XMLObj() { indentWidth = 4; }
90 QString XMLObj::singleElement(QString s, QString at)
92 return indent() + "<" + s + " " + at + " />";
95 // returns <s at at at at ... />
96 QString XMLObj::singleElement(QString s, QStringList attributes)
98 return indent() + "<" + s + " " + attributes.join(" ") + " />";
102 QString XMLObj::beginElement(QString s) { return indent() + "<" + s + ">"; }
105 QString XMLObj::beginElement(QString s, QString at)
107 return indent() + "<" + s + " " + at + ">";
111 QString XMLObj::endElement(QString s) { return indent() + "</" + s + ">"; }
114 QString XMLObj::attribut(QString at, QString val) const
116 return " " + at + "=\"" + quoteMeta(val) + "\"";
119 // returns <s> val </s>
120 QString XMLObj::valueElement(QString el, QString val)
122 return indent() + "<" + el + ">" + val + "</" + el + ">";
125 // returns <s at> val </s>
126 QString XMLObj::valueElement(QString el, QString val, QString at)
128 return "<" + el + " " + at + ">" + val + "</" + el + ">";
131 void XMLObj::incIndent() { curIndent++; }
133 void XMLObj::decIndent()
140 QString XMLObj::indent()
144 for (i = 0; i < curIndent * indentWidth; i++) {