У меня есть программа, в которой он читает и пишет XML с использованием XMLReader и XMLWriter
XmlWriter writer =
XmlWriter.Create(fullpath, settings);
//content...
writer.Flush();
writer.Close();
и код моего читателя
XmlReader reader = XmlReader.Create(fullpath);
while (reader.Read())
{
switch(reader.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine("Element: " + reader.Name);
while(reader.MoveToNextAttribute())
{
Console.WriteLine("\tAttribute: [" + reader.Name + "] = '" +
reader.Value + "'");
}
break;
case XmlNodeType.DocumentType:
Console.WriteLine("Document: " + reader.Value);
break;
case XmlNodeType.Comment:
Console.WriteLine("comment: " + reader.Value);
break;
default:
Console.WriteLine("unknown type, error!");
break;
}
}
reader.Close()
Писатель работает нормально, но когда доходит до XmlReader reader = XmlReader.Create (fullpath);
дважды печатает сообщение об ошибке неизвестного типа и выдает ошибку
Необработанное исключение:
System.Xml.XmlException: для безопасности
причины DTD запрещают
в этом документе XML. Чтобы включить обработку DTD, установите
ProhibitDtd недвижимость
на XmlReaderSettings в false и передать настройки в
XmlReader.Create meta
д.
в System.Xml.XmlTextReaderImpl.Throw (Исключение
е)
в System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo (String
Res, String Arg)
в System.Xml.XmlTextReaderImpl.ParseDoctypeDecl ()
в System.Xml.XmlTextReaderImpl.ParseDocumentContent ()
в System.Xml.XmlTextReaderImpl.Read ()
в writefile.Main () в C: \ Main \ C # June \ CH9 \ CodeFile1.cs: строка
Я пытался добавить это до XmlReader.Create (fullpath)
XmlReaderSettings settingsread = new XmlReaderSettings();
settingsread.ProhibitDtd = false;
Я все еще получаю ту же ошибку, в чем реальная проблема в этой программе?