我有一个包含以下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文件的位置吗?
答案 0 :(得分:1)
下面:
<!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
。
答案 1 :(得分:0)
对于相对路径使用〜
<!DOCTYPE localdtd PUBLIC "-//local host//local dtd - XML//EN" "~/localdtd.dtd"[]>