Sto lavorando con ASP.NET e sto importando un file XML da un modulo. In questo momento mi convertire in un Stream
:Lettura XML da Stream
Stream inputStream = XmlFileUploadControl.PostedFile.InputStream;
perché posso avere bisogno di questa versione successiva.
mi piacerebbe controllare primo a fare assicurarsi che il file XML ha il formato corretto, e, se lo è, allora visualizzare alcune informazioni:
if (CorrectFileFormat(inputStream))
{
DisplayLicenseInfo(inputStream);
}
else
{
StatusLabel.Text = "Selected file is not a LicensingDiag XML file";
}
Il metodo CorrectFileFormat()
:
protected Boolean CorrectFileFormat(Stream inputStream)
{
XmlReader reader = XmlReader.Create(inputStream);
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "DiagReport")
{
return true;
}
}
Il metodo DisplayLicenseInfo()
:
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>");
}
}
Tuttavia, sono incontrando un XmlException
che dice "I dati a livello di root non sono validi. Riga 1, posizione 1 ". È perché ho già letto il flusso di input una volta e devo ripristinarlo? Se sì, come faccio?
Qual è il valore della stringa? Probabilmente è quel fastidioso 'FEFF' ... –