prevent DTD下载解析XML时 [英] Prevent DTD download when parsing XML

查看:127
本文介绍了prevent DTD下载解析XML时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用XMLDocument.load方法,我发现,如果该文件是指一个DTD,建立连接到所提供的URI。有没有什么办法prevent这种情况的发生?

When using XmlDocument.Load , I am finding that if the document refers to a DTD, a connection is made to the provided URI. Is there any way to prevent this from happening?

推荐答案

在一些更多的挖掘,也许你应该设置<一个href="http://msdn.microsoft.com/en-us/library/system.xml.xmlreadersettings.xmlresolver.aspx">XmlResolver该XmlReaderSettings的属性对象为null。

After some more digging, maybe you should set the XmlResolver property of the XmlReaderSettings object to null.

的的XmlResolver用于定位和   打开XML实例文档,或   找到并打开任何外部资源   由XML实例中引用   文件。这可以包括实体   DTD或模式。

'The XmlResolver is used to locate and open an XML instance document, or to locate and open any external resources referenced by the XML instance document. This can include entities, DTD, or schemas.'

所以,code是这样的:

So the code would look like this:

        XmlReaderSettings settings = new XmlReaderSettings();
        settings.XmlResolver = null;
        settings.DtdProcessing = DtdProcessing.Parse;
        XmlDocument doc = new XmlDocument();
        using (StringReader sr = new StringReader(xml))
            using (XmlReader reader = XmlReader.Create(sr, settings))
            {
                doc.Load(reader);
            }

这篇关于prevent DTD下载解析XML时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆