J'ai un programme où il lit et écrit XML en utilisant XMLReader et XMLWriterLecture et écriture à un XML - erreur DTD
XmlWriter writer =
XmlWriter.Create(fullpath, settings);
//content...
writer.Flush();
writer.Close();
et mon code
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()
L'auteur fonctionne très bien, mais quand il arrive à XmlReader reader = XmlReader.Create (fullpath);
il imprime le message d'erreur de type inconnu à deux reprises et se bloque avec l'erreur
Exception non gérée: System.Xml.XmlException: Pour plus de sécurité raisons DTD est Interdisant ité dans ce document XML. Pour activer le traitement DTD, définissez la propriété ProhibitDtd sur XmlReaderSettings sur false et transmettez les paramètres à XmlReader.Create metho d. à System.Xml.XmlTextReaderImpl.Throw (Exception e) à System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo (String res, String arg) à System.Xml.XmlTextReaderImpl.ParseDoctypeDecl() à System.Xml.XmlTextReaderImpl. ParseDocumentContent() à System.Xml.XmlTextReaderImpl.Read() à writefile.Main() dans C: \ Main \ C# Juin \ CH9 \ CodeFile1.cs: ligne
J'ai essayé d'ajouter ceci avant XmlReader .Créer (chemin complet)
XmlReaderSettings settingsread = new XmlReaderSettings();
settingsread.ProhibitDtd = false;
Je reçois toujours la même erreur, quel est le vrai problème dans ce programme?
vous l'avez, qui a résolu le problème – superlazyname