Dateiformat prüfen
Dateiformat prüfen
Hallo,
ich möchte mehrere .xml-Dateien in einem QListWidget laden.
Wie kann ich überüfen, ob es sich um eine .xml-Datei handelt oder nicht,
denn es dürfen keine andere Dateien geladen werden können.
Hat jemand eine Idee, wie ich so eine Abfrage implementieren kann?
Danke
ich möchte mehrere .xml-Dateien in einem QListWidget laden.
Wie kann ich überüfen, ob es sich um eine .xml-Datei handelt oder nicht,
denn es dürfen keine andere Dateien geladen werden können.
Hat jemand eine Idee, wie ich so eine Abfrage implementieren kann?
Danke
Na das taugt ja nun gar nicht. Ich benenne meine Datei um und habe ein XML, oder wie?STS301 hat geschrieben:du könntest es mit einem QOpenDialog machen und dem sagen, dass er nur die .xml Datein öffnen lässt
Valides XML enthält immer eine Dokumenttypdefinition in der ersten Zeile. Einlesen und prüfen der ersten Zeichen einer Datei sollte also reichen, um festzustellen ob es sich aller Wahrscheinlichkeit um ein XML handelt.
Ansonsten würde ich es auch QtXml überlassen.
Hallo,
ich habe es folgendermaßen versucht.
Ich bekomme jedesmal die Fehlermeldung von der MessageBox,
auch wenn es sich um eine xml-Datei mit dem root "index" handelt.
xml-Datei:
ich habe es folgendermaßen versucht.
Code: Alles auswählen
QDomDocument domDoc;
QDomElement root = domDoc.documentElement();
if (root.tagName() != "index")
{
QMessageBox::information(window(),tr("Fehler"), tr("Keine gültige xml-Datei"));
}auch wenn es sich um eine xml-Datei mit dem root "index" handelt.
xml-Datei:
Code: Alles auswählen
<version....>
<!--Kommentare-->
<index>Das nix valid.nkc hat geschrieben:xml-Datei:Code: Alles auswählen
<version....> <!--Kommentare--> <index>
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<doc>
<nnnnn>Hello</nnnnn>
<oooo>Blubb</oooo>
</doc>Danke für den Hinweis.
Die xml-Dartei ist schon so beschrieben:
Ich hatte nur etwas kürzer gefasst.
Problem ist nur, dass ich prüfen möchte, ob es um eine xml-Datei handelt.
Wie beschrieben, bekomme ich immer die Meldung.
Die xml-Dartei ist schon so beschrieben:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<doc>
<nnnnn>Hello</nnnnn>
<oooo>Blubb</oooo>
</doc>Problem ist nur, dass ich prüfen möchte, ob es um eine xml-Datei handelt.
Wie beschrieben, bekomme ich immer die Meldung.
Tja, dann musst du jetzt selber bissl debuggen...
die QDomDocument::setContent()-Funktionen nehmen zusäztliche Argumente für Fehlerbehandlung an.
Schau dir dann mal an, was dabei rauskommt.
Folgendes Testprogramm gibt nämlich genau das aus, was man erwartet, nämlich "doc":
die QDomDocument::setContent()-Funktionen nehmen zusäztliche Argumente für Fehlerbehandlung an.
Schau dir dann mal an, was dabei rauskommt.
Folgendes Testprogramm gibt nämlich genau das aus, was man erwartet, nämlich "doc":
Code: Alles auswählen
#include <QtXml>
#include <QtDebug>
const QString XML_DATA = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \
<!DOCTYPE xml> \
<doc> \
<nnnnn>Hello</nnnnn> \
<oooo>Blubb</oooo> \
</doc>";
int main()
{
QDomDocument doc;
doc.setContent( XML_DATA );
QDomElement root = doc.documentElement();
qDebug() << root.tagName();
return 0;
}