vXML.Active:= True => “%25”字符序列处的EDOMParseError

时间:2014-01-20 12:16:23

标签: delphi txmldocument

当我想在其文件名中加载包含“%25”的XML文件时,我在Delphi中遇到此问题。

   vXML := TXMLDocument.Create(nil);
  vXML.FileName := pFileName;
  try
    try
      vXML.Active := True;

在调试模式下,行

出错
vXML.Active := True; 

错误:

  

75ACC41F的第一次机会异常。异常类EDOMParseError   有消息

     

行:0'。

Enyone知道如何让TXMLDocument打开一个文件名为“%25”的文件?

文件不是空的 - 我查了一下。 当我删除“%25”字符时,一切正常。 示例文件名:“something%25.xml”

我的系统和IDE: 带有Service Pack 1的Windows 7 Home Premium; Delphi 2010;

1 个答案:

答案 0 :(得分:0)

要在文件名中正确加载带有(例如)“%25”的文件,我们必须在文件路径上使用PathEncode。例如:

uses idURI;

[...]

vXML.LoadFromFile(TIdURI.PathEncode(pFileName));

警告:如果您使用的字符是'ó'这不行......