1

次の 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 ファイルの場所を指定できますか?

4

2 に答える 2

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

于 2012-08-14T17:55:45.003 に答える
0

相対パスの使用~

<!DOCTYPE localdtd PUBLIC "-//local host//local dtd - XML//EN" "~/localdtd.dtd"[]>
于 2014-06-17T07:31:09.547 に答える