filters
xmlparser.cc00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <kdebug.h>
00023 #include <KoStore.h>
00024
00025 #include "xmlparser.h"
00026 #include "qfile.h"
00027
00028
00029 FileHeader* XmlParser::_fileHeader = 0;
00030 Document* XmlParser::_root = 0;
00031 KoStore* XmlParser::_in = NULL;
00032
00033 XmlParser::XmlParser(QString filename): _filename(filename)
00034 {
00035 QFile f(filename);
00036 if(!f.open(IO_ReadOnly))
00037 return;
00038 if(!_document.setContent(&f))
00039 {
00040 f.close();
00041 return;
00042 }
00043 f.close();
00044
00045 }
00046
00047 XmlParser::XmlParser(QByteArray in)
00048 {
00049 _document.setContent(in);
00050 }
00051
00052 XmlParser::XmlParser(const KoStore* in)
00053 {
00054 _in = const_cast<KoStore*>(in);
00055 if(!_in->open("root"))
00056 {
00057 kdError(30522) << "Unable to open input file!" << endl;
00058 return;
00059 }
00060
00061 QByteArray array = _in->read(_in->size());
00062 _document.setContent(array);
00063 }
00064
00065 XmlParser::XmlParser()
00066 {
00067 }
00068
00069 XmlParser::~XmlParser()
00070 {
00071 if(_in != NULL)
00072 _in->close();
00073 }
00074
00075 QDomNode XmlParser::getChild(QDomNode balise, QString name)
00076 {
00077 QDomNode node = getChild(balise, name, 0);
00078 kdDebug(30522) << node.nodeName() << endl;
00079 return node;
00080 }
00081
00082 bool XmlParser::isChild(QDomNode balise, QString name)
00083 {
00084 if(balise.isElement())
00085 return balise.toElement().elementsByTagName(name).count();
00086 return false;
00087 }
00088
00089 QDomNode XmlParser::getChild(QDomNode balise, QString name, int index)
00090 {
00091 if(balise.isElement()) {
00092 QDomNodeList children = balise.toElement().elementsByTagName(name);
00093 if ( children.count() )
00094 return children.item(index);
00095 }
00096 return QDomNode();
00097 }
00098
00099 QDomNode XmlParser::getChild(QDomNode balise, int index)
00100 {
00101 QDomNodeList children = balise.childNodes();
00102 if ( children.count() )
00103 return children.item(index);
00104 return QDomNode();
00105 }
00106
00107 QString XmlParser::getData(QDomNode balise, int index)
00108 {
00109 return getChild(getChild(balise, index), 0).nodeValue();
00110 }
00111
00112 QString XmlParser::getData(QDomNode balise, QString name)
00113 {
00114 return getChild(getChild(balise, name), 0).nodeValue();
00115 }
00116
00117 int XmlParser::getNbChild(QDomNode balise)
00118 {
00119 return balise.childNodes().count();
00120 }
00121
00122 int XmlParser::getNbChild(QDomNode balise, QString name)
00123 {
00124 if(balise.isElement())
00125 return balise.toElement().elementsByTagName(name).count();
00126 return -1;
00127 }
00128
00129 QString XmlParser::getChildName(QDomNode balise, int index)
00130 {
00131 return balise.childNodes().item(index).nodeName();
00132 }
00133
00134 QString XmlParser::getAttr(QDomNode balise, QString name) const
00135 {
00136 if(balise.isElement())
00137 return balise.toElement().attributeNode(name).value();
00138 return QString();
00139 }
|