48 if(m_qxmlStreamReader.errorString().isEmpty())
52 QString error = QObject::tr(
"ERROR at line %1 column %2\n%3")
53 .arg(m_qxmlStreamReader.lineNumber())
54 .arg(m_qxmlStreamReader.columnNumber())
55 .arg(m_qxmlStreamReader.errorString());
64 if(!file.open(QFile::ReadOnly | QFile::Text))
66 m_qxmlStreamReader.raiseError(
67 QObject::tr(
"Cannot read file %1 : %2")
68 .arg(QFileInfo(fileName).absoluteFilePath())
69 .arg(m_qxmlStreamReader.errorString()));
81 m_qxmlStreamReader.raiseError(
82 QObject::tr(
"Error reading file %1 : %2")
83 .arg(QFileInfo(fileName).absoluteFilePath())
84 .arg(m_qxmlStreamReader.errorString()));
92 m_qxmlStreamReader.setDevice(device);
93 m_qxmlStreamReader.setNamespaceProcessing(
true);
96 return !m_qxmlStreamReader.error();
102 m_qxmlStreamReader.clear();
103 m_qxmlStreamReader.addData(xml_content);
104 m_qxmlStreamReader.setNamespaceProcessing(
true);
107 return !m_qxmlStreamReader.error();
111 QXmlStreamWriter &output)
const
113 output.writeStartElement(m_qxmlStreamReader.name().toString());
115 for(
auto declaration : m_qxmlStreamReader.namespaceDeclarations())
117 output.writeNamespace(declaration.namespaceUri().toString(),
118 declaration.prefix().toString());
120 output.writeAttributes(m_qxmlStreamReader.attributes());
126 qDebug() <<
" name=" << m_qxmlStreamReader.name();
127 output.writeStartElement(m_qxmlStreamReader.namespaceUri().toString(),
128 m_qxmlStreamReader.name().toString());
129 output.writeAttributes(m_qxmlStreamReader.attributes());
131 qDebug() << m_qxmlStreamReader.name();
132 while(m_qxmlStreamReader.readNext() && !m_qxmlStreamReader.isEndElement())
135 if(output.hasError())
138 m_qxmlStreamReader.raiseError(QObject::tr(
"Error in output stream"));
142 output.writeEndElement();
149 if(m_qxmlStreamReader.isCharacters())
151 qDebug() <<
"isCharacters " << m_qxmlStreamReader.text();
152 if((m_qxmlStreamReader.text().toString() ==
"\n") ||
153 (m_qxmlStreamReader.text().toString() ==
"\n\t"))
159 output.writeCharacters(
160 m_qxmlStreamReader.text().toString().trimmed());
163 else if(m_qxmlStreamReader.isEndElement())
165 qDebug() <<
"isEndElement";
166 output.writeEndElement();
168 else if(m_qxmlStreamReader.isStartElement())
170 qDebug() <<
"isStartElement";
171 cloneElement(output);
QString errorString() const
void cloneStartElement(QXmlStreamWriter &output) const
virtual ~XmlStreamReaderInterface()
void cloneElement(QXmlStreamWriter &output)
XmlStreamReaderInterface()
void cloneNode(QXmlStreamWriter &output)
virtual bool readFile(const QString &fileName)
bool read(QIODevice *device)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
common interface to read all XML streams containing convenient functions