[英]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.