我有一个程序,它使用 XMLReader 和 XMLWriter 读写 XML
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:出于安全原因,此 XML 文档中禁止使用 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false 并将设置传递给 XmlReader.Create 方法。在 System.Xml.XmlTextReaderImpl.Throw(Exception e) 在 System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res, String arg) 在 System.Xml.XmlTextReaderImpl.ParseDoctypeDecl() 在 System.Xml.XmlTextReaderImpl.ParseDocumentContent() 在 System. C:\Main\C#June\CH9\CodeFile1.cs:line 中 writefile.Main() 处的 Xml.XmlTextReaderImpl.Read()
我尝试在 XmlReader.Create(fullpath) 之前添加它
XmlReaderSettings settingsread = new XmlReaderSettings();
settingsread.ProhibitDtd = false;
我仍然得到同样的错误,这个程序的真正问题是什么?