XmlDocument和慢模式处理

Spr*_*tar 5 .net c# xml xmldocument dtd

我有一个xml模板文档,我需要加载到XmlDocument中.例如

myXMLDocument.Load(myXMLFile);
Run Code Online (Sandbox Code Playgroud)

然而,这在dtd中加载时非常慢.我已经尝试了两个"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"和dtd的本地副本.两者都或多或少地同时进行.如果我通过将解析器设置为null(例如)来加载dtd,那么我会收到错误,例如"Reference to undeclared entity 'nbsp'"文档是否包含这些错误.

我需要使用XmlDocument,因为我需要在输出文档之前操作DOM.我怎样才能解决这些问题?

小智 2

如果返回空内存流,则可以避免 DTD:

private class DummyResolver : XmlResolver
{
   public override System.Net.ICredentials Credentials
   {
    set
    {
     // Do nothing.
    }
   }

public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn)
   {
    return new System.IO.MemoryStream();
   }
}
Run Code Online (Sandbox Code Playgroud)