[C#] `XmlDocument` のXMLパース時に `WebException` が発生する問題の対応

string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?>
<!DOCTYPE plist PUBLIC ""-//Apple//DTD PLIST 1.0//EN""
""http://-/DTDs/PropertyList-1.0.dtd"">
<root></root>";

try
{
  var xmlDocument = new XmlDocument();
  // xmlDocument.XmlResolver = null;
  xmlDocument.LoadXml(xml);
}
catch(WebException e)
{
   Trace.Write(e.Message); // リモート名を解決できませんでした。: '-'
}

DTDに指定したURLにアクセスできないと WebException が発生する。

これを回避するには XmlDocument#XmlResolvernull をセットする。 こうすることでDTDに指定したURLを解決しなくなる。

DTD解決が必要ならきちんとした XmlResoler をセットして下さい。。

Share
関連記事