Tôi đang làm việc với ASP.NET và đang nhập tệp XML từ biểu mẫu. Ngay bây giờ tôi chuyển đổi thành một số Stream
:Đọc XML từ Luồng
Stream inputStream = XmlFileUploadControl.PostedFile.InputStream;
vì tôi có thể cần phiên bản này sau.
Tôi muốn đầu tiên kiểm tra để chắc chắc chắn rằng các tập tin XML có định dạng chính xác, và, nếu có, sau đó hiển thị một số thông tin:
if (CorrectFileFormat(inputStream))
{
DisplayLicenseInfo(inputStream);
}
else
{
StatusLabel.Text = "Selected file is not a LicensingDiag XML file";
}
Phương pháp CorrectFileFormat()
:
protected Boolean CorrectFileFormat(Stream inputStream)
{
XmlReader reader = XmlReader.Create(inputStream);
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "DiagReport")
{
return true;
}
}
Các DisplayLicenseInfo()
phương pháp:
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>");
}
}
Tuy nhiên, tôi gặp phải một số XmlException
cho biết "Dữ liệu ở cấp cơ sở không hợp lệ. Dòng 1, vị trí 1 ". Đây có phải là vì tôi đã đọc qua luồng đầu vào một lần và cần phải đặt lại luồng đó không? Nếu vậy, làm cách nào để thực hiện điều đó?
giá trị của chuỗi là gì? Nó có lẽ là 'FEFF' pesky ... –