insilmaril@621: #include "xmlobj.h" insilmaril@621: insilmaril@621: #include insilmaril@721: #include insilmaril@621: insilmaril@621: insilmaril@621: // returns masked "<" ">" "&" insilmaril@621: QString quotemeta(const QString &s) insilmaril@621: { insilmaril@621: QString r=s; insilmaril@621: QRegExp rx("&(?!amp;)"); insilmaril@621: r.replace ( rx,"&"); insilmaril@621: rx.setPattern( ">"); insilmaril@621: r.replace ( rx,">"); insilmaril@621: rx.setPattern( "<"); insilmaril@621: r.replace ( rx,"<"); insilmaril@621: rx.setPattern( "\""); insilmaril@621: r.replace ( rx,"""); insilmaril@621: return r; insilmaril@621: } insilmaril@621: insilmaril@621: insilmaril@621: insilmaril@621: int XMLObj::actindent=0; // make instance of actindent insilmaril@621: insilmaril@621: XMLObj::XMLObj() insilmaril@621: { insilmaril@621: indentwidth=4; insilmaril@621: } insilmaril@621: insilmaril@621: insilmaril@621: // returns insilmaril@621: QString XMLObj::singleElement(QString s, QString at) insilmaril@621: { insilmaril@621: return indent() + "<" + s +" " + at +" " + "/>\n"; insilmaril@621: } insilmaril@621: insilmaril@621: // returns insilmaril@621: QString XMLObj::beginElement(QString s) insilmaril@621: { insilmaril@621: return indent() + "<" + s + ">\n"; insilmaril@621: } insilmaril@621: insilmaril@621: // returns insilmaril@621: QString XMLObj::beginElement(QString s, QString at) insilmaril@621: { insilmaril@621: return indent() + "<" + s + " " + at + ">\n"; insilmaril@621: } insilmaril@621: insilmaril@621: // returns insilmaril@621: QString XMLObj::endElement(QString s) insilmaril@621: { insilmaril@621: return indent() + "\n"; insilmaril@621: } insilmaril@621: insilmaril@621: // returns at="val" insilmaril@621: QString XMLObj::attribut(QString at, QString val) insilmaril@621: { insilmaril@621: return " " + at + "=\"" + quotemeta (val) + "\""; insilmaril@621: } insilmaril@621: insilmaril@621: // returns val insilmaril@621: QString XMLObj::valueElement(QString el, QString val) insilmaril@621: { insilmaril@621: return indent() + "<" + el + ">" + quotemeta(val) + "\n"; insilmaril@621: } insilmaril@621: insilmaril@621: // returns val insilmaril@621: QString XMLObj::valueElement(QString el, QString val, QString at) insilmaril@621: { insilmaril@621: return indent() + "<" + el + " " + at + ">" + quotemeta(val) + "\n"; insilmaril@621: } insilmaril@621: insilmaril@621: void XMLObj::incIndent() insilmaril@621: { insilmaril@621: actindent++; insilmaril@621: } insilmaril@621: insilmaril@621: void XMLObj::decIndent() insilmaril@621: { insilmaril@621: actindent--; insilmaril@621: if (actindent<0) actindent=0; insilmaril@621: } insilmaril@621: insilmaril@621: QString XMLObj::indent() insilmaril@621: { insilmaril@621: QString s; insilmaril@621: int i; insilmaril@621: for (i=0; i