0

XmlDocument をインスタンス化し、ファイル pat に非ラテン記号を含む XML ファイルをロードしようとしました。ファイルのロード中に私が直面している

 ArgumentNullException 

メッセージ付き:

"Value cannot be null. Parameter name: str"

スタック トレースは -

at System.Security.Permissions.FileIOPermission.HasIllegalCharacters(String[] str)
at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path)
at System.Uri.ParseConfigFile(String file, IdnScopeFromConfig& idnStateConfig, IriParsingFromConfig& iriParsingConfig)
at System.Uri.GetConfig(UriIdnScope& idnScope, Boolean& iriParsing)
at System.Uri.InitializeUriConfig()
at System.Uri.InitializeUri(ParsingError err, UriKind uriKind, UriFormatException& e)
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Uri..ctor(String uriString, UriKind uriKind)
at System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)
at System.Xml.XmlUrlResolver.ResolveUri(Uri baseUri, String relativeUri)
at System.Xml.XmlTextReaderImpl..ctor(String url, XmlNameTable nt)
at System.Xml.XmlTextReader..ctor(String url, XmlNameTable nt)
at System.Xml.XmlDocument.Load(String filename)
at .... 

私のコードの一部があります:

var xmlData = new XmlDocument();
if (File.Exists(xmlPath))
{        
    xmlData.Load(xmlPath);
    ...
}

xmlPath にはフランス語の文字が含まれています。

なにが問題ですか?非ラテン文字を含むxmlファイルを開くにはどうすればよいですか?

4

2 に答える 2

0

次のように、データの読み込みに他のクラスを使用することに関する問題の解決策を見つけました。

var d = File.ReadAllText(xmlPath);
xmlData.LoadXml(d);

しかし、質問 - 「何が悪いのですか?」まだ開いている。

于 2012-10-05T14:08:52.457 に答える
0

最初にファイル パスを uri に読み込みます。

Uri xmlUri = new Uri(xmlPath);
xmlData.Load(xmlUri.AbsolutePath);
于 2012-10-05T18:42:20.907 に答える