2 Stimmen

feststellen, ob xml datei daten enthält - c#

Woher weiß ich, ob meine XML-Datei neben der Namensrauminformation noch weitere Daten enthält?

Einige der Dateien enthalten dies:

<?xml version="1.0" encoding="UTF-8"?>

Und wenn ich auf eine solche Datei stoße, möchte ich die Datei in einem Fehlerverzeichnis ablegen

0voto

Andrei Punkte 169

Sie könnten prüfen, ob das Xml-Dokument einen Knoten (den Root-Knoten) hat, und prüfen, ob dieser Knoten inneren Text oder andere Kinder hat.

0voto

Ryan Brunner Punkte 14463

Solange Sie sich nicht um die Gültigkeit des XML-Dokuments kümmern, sondern nur sicherstellen wollen, dass es ein anderes Tag als die Deklaration enthält, können Sie eine einfache Textverarbeitung verwenden:

var regEx = new RegEx("<[A-Za-z]");
bool foundTags = false;
string curLine = "";

using (var reader = new StreamReader(fileName)) {
    while (!reader.EndOfStream) {
       curLine = reader.ReadLine();
       if (regEx.Match(curLine)) {
           foundTags = true;
           break;
       }
    }
}

if (!foundTags) {
    // file is bad, copy.
}

Denken Sie daran, dass es eine Million anderer Gründe gibt, warum die Datei ungültig sein könnte, und der obige Code würde eine Datei validieren, die nur aus "<a" besteht. Wenn Sie überprüfen wollen, ob das XML-Dokument gelesen werden kann, sollten Sie den XmlDocument-Ansatz verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X