diff options
Diffstat (limited to 'filters/kword/latex/export/xmlparser.cpp')
-rw-r--r-- | filters/kword/latex/export/xmlparser.cpp | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/filters/kword/latex/export/xmlparser.cpp b/filters/kword/latex/export/xmlparser.cpp new file mode 100644 index 000000000..9d83bedb8 --- /dev/null +++ b/filters/kword/latex/export/xmlparser.cpp @@ -0,0 +1,149 @@ +/* +** A program to convert the XML rendered by KOffice into LATEX. +** +** Copyright (C) 2000-2003 Robert JACOLIN +** +** This library is free software; you can redistribute it and/or +** modify it under the terms of the GNU Library General Public +** License as published by the Free Software Foundation; either +** version 2 of the License, or (at your option) any later version. +** +** This library is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** Library General Public License for more details. +** +** To receive a copy of the GNU Library General Public License, write to the +** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +** +*/ + +#include <kdebug.h> +#include <KoStore.h> + +#include "xmlparser.h" +#include "tqfile.h" + +/* Init static data */ +//FileHeader* XmlParser::_fileHeader = 0; +Document* XmlParser::_root = 0; +KoStore* XmlParser::_in = NULL; +TQString XmlParser::_filename = ""; + +XmlParser::XmlParser(Config* config, TQString filename):_config(config) + +{ + //_filename = filename; + TQFile f(filename); + if(!f.open(IO_ReadOnly)) + return; + if(!_document.setContent(&f)) + { + f.close(); + return; + } + else + f.close(); + //_eltCurrent = _document.documentElement(); +} + +XmlParser::XmlParser(Config* config, TQByteArray in): _config(config) +{ + _document.setContent(in); +} + +XmlParser::XmlParser(Config* config, const KoStore* in): _config(config) +{ + _in = const_cast<KoStore*>(in); + if(!_in->open("root")) + { + kdError(30503) << "Unable to open input file!" << endl; + return; + } + /* input file Reading */ + TQByteArray array = _in->read(_in->size()); + _document.setContent(array); + if(!_in->close()) + { + kdError(30522) << "unable to close input file" << endl; + return; + } +} + +XmlParser::XmlParser() +{ + _config = Config::instance(); + /*_in = xmlParser.getStorage(); + _fileHeader = xmlParser.getFileHeader(); + _root = xmlParser.getRoot(); + _document.setContent(_in); + _filename = xmlParser.getFilename();*/ +} + +XmlParser::~XmlParser() +{ + /*if(_in != NULL) + _in->close();*/ +} + +TQDomNode XmlParser::getChild(TQDomNode balise, TQString name) +{ + TQDomNode node = getChild(balise, name, 0); + kdDebug(30522) << node.nodeName() << endl; + return node; +} + +bool XmlParser::isChild(TQDomNode balise, TQString name) +{ + if(balise.isElement()) + return balise.toElement().elementsByTagName(name).count(); + return false; +} + +TQDomNode XmlParser::getChild(TQDomNode balise, TQString name, int index) +{ + if(balise.isElement()) { + TQDomNodeList children = balise.toElement().elementsByTagName(name); + if ( children.count() ) + return children.item(index); + } + return TQDomNode(); +} + +TQDomNode XmlParser::getChild(TQDomNode balise, int index) +{ + TQDomNodeList children = balise.childNodes(); + if ( children.count() ) + return children.item(index); + return TQDomNode(); +} + +TQString XmlParser::getData(TQDomNode balise, int index) +{ + return getChild(getChild(balise, index), 0).nodeValue(); +} + +int XmlParser::getNbChild(TQDomNode balise) +{ + return balise.childNodes().count(); +} + +int XmlParser::getNbChild(TQDomNode balise, TQString name) +{ + if(balise.isElement()) + return balise.toElement().elementsByTagName(name).count(); + return -1; +} + +TQString XmlParser::getChildName(TQDomNode balise, int index) +{ + return balise.childNodes().item(index).nodeName(); +} + +TQString XmlParser::getAttr(TQDomNode balise, TQString name) const +{ + if(balise.isElement()) + return balise.toElement().attributeNode(name).value(); + return TQString(); +} |