XMLを扱うC#プログラムを作成しているのですが、XmlDocument.Loadメソッドの実行に時間がかかって困っています(10秒程度)。
DOCTYPE宣言でDTDを宣言(今回のケースではSVG)していると、検証のためかLoadメソッドで時間を食うようです。
この部分の高速化のためにはどうすればいいのか、ご存知でしたらご教授ください。
.NET詳しくないのに何度もすみません。
リファレンスを見ると、デフォルトではLoadでValidateはされないようです。
ただし、DTDはValidate用途だけではないので、読み込みはされると。。。
XmlResolver という外部リソースへのアクセス権限を設定しているプロパティを設定すれば、DTDを無視するもよう。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20153&am...
XmlDocument doc = new XmlDocument();
doc.XmlResolver = null;
doc.Load("filepath");
みたいな感じでどうでしょう。
XmlDocument.validateOnParse = false
http://www.microsoft.com/japan/msdn/xml/general/beginner.aspx
でいけると思うのですが、.NET詳しくないので...
残念ながら、.NETのXmlDocumentにはValidateOnParseプロパティはありませんでした。
MSXMLの仕様のようなので、IE上(およびActiveX?)でなら使えるということでしょうね。残念です。
.NET詳しくないのに何度もすみません。
リファレンスを見ると、デフォルトではLoadでValidateはされないようです。
ただし、DTDはValidate用途だけではないので、読み込みはされると。。。
XmlResolver という外部リソースへのアクセス権限を設定しているプロパティを設定すれば、DTDを無視するもよう。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20153&am...
XmlDocument doc = new XmlDocument();
doc.XmlResolver = null;
doc.Load("filepath");
みたいな感じでどうでしょう。
MSDNの方も見てみました。思い通りの動作をしてくれそうですね。
動作確認は今できないですが、XmlDocument.XmlResolverをnull参照にして、DTD宣言がされているために起こるXmlExceptionに対応すれば、問題は解決できうです。ありがとうございました。
MSDNの方も見てみました。思い通りの動作をしてくれそうですね。
動作確認は今できないですが、XmlDocument.XmlResolverをnull参照にして、DTD宣言がされているために起こるXmlExceptionに対応すれば、問題は解決できうです。ありがとうございました。