Ich arbeite mit ASP.NET und bin den Import einer XML-Datei aus einem Formular. Gerade jetzt konvertiere ich, dass in ein Stream
:Lesen von XML-Stream von
Stream inputStream = XmlFileUploadControl.PostedFile.InputStream;
, weil ich später diese Version benötigen.
Ich mag würde, um sicher zu stellen, überprüfen Sie, dass die XML-Datei das richtige Format hat, und, wenn ja, dann einige Informationen angezeigt werden:
if (CorrectFileFormat(inputStream))
{
DisplayLicenseInfo(inputStream);
}
else
{
StatusLabel.Text = "Selected file is not a LicensingDiag XML file";
}
Die CorrectFileFormat()
Methode:
protected Boolean CorrectFileFormat(Stream inputStream)
{
XmlReader reader = XmlReader.Create(inputStream);
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "DiagReport")
{
return true;
}
}
Die DisplayLicenseInfo()
Methode:
protected void DisplayLicenseInfo(Stream inputStream)
{
XmlReader reader = XmlReader.Create(inputStream);
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "LicensingStatus")
{
StatusLabel.Text += ("Licensing Status: " + reader.ReadString() + "<br><br>");
}
}
aber ich bin Begegnung mit einer XmlException
, die sagt "Daten auf der Stammebene ist ungültig. Zeile 1, Position 1 ". Ist dies, weil ich den Eingabestream bereits einmal gelesen habe und ihn zurücksetzen muss? Wenn ja, wie mache ich das?
Was ist der Wert der Zeichenfolge? Es ist wahrscheinlich das nervtötende 'FEFF' ... –