繁体   English   中英

C#中的DTD验证

[英]DTD validation in C#

我有一个具有以下DOCTYPE的XML文件:

<!DOCTYPE localdtd PUBLIC "-//local host//local dtd - XML//EN" "localdtd.dtd"[]>

我正在尝试使用以下代码针对位于我的根文件夹中的localdtd.dtd验证XML

XmlDocument xml = new XmlDocument();

using (var xmlreader = XmlReader.Create(
                          new StringReader(xmlcontent), 
                          new XmlReaderSettings() 
                          { 
                             ProhibitDtd = false, ValidationType = ValidationType.DTD
                          }   ) )
{
            xml.Load(xmlreader); 
} 

我收到以下错误

找不到文件“ C:\\ Program Files \\ Microsoft Visual Studio 9.0 \\ Common7 \\ IDE \\ localdtd.dtd”。

我们可以指定localdtd.dtd文件的位置吗?

这里:

<!DOCTYPE localdtd PUBLIC "-//local host//local dtd - XML//EN" "localdtd.dtd"[]>

我相信您可以使用以下命令指定直接路径:

<!DOCTYPE localdtd PUBLIC "-//local host//local dtd - XML//EN" @"C:\\MYLOCATION\\localdtd.dtd"[]>

或尝试添加:

XmlResolver.ResolveUri(@“ C:\\ MYLOCATION \\ localdtd.dtd”,null)

XmlReaderSettings

对于相对路径使用

<!DOCTYPE localdtd PUBLIC "-//local host//local dtd - XML//EN" "~/localdtd.dtd"[]>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM