vXML.Active:= True => EDOMParseError в последовательности символов "%25"

У меня есть эта проблема в Delphi, когда я хочу загрузить XML-файл, который содержит "%25" в имени файла.

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

В режиме отладки есть ошибка в строке

vXML.Active := True; 

Ошибка:

Исключение из первого шанса на $75ACC41F. Класс исключения EDOMParseError с сообщением

Линия: 0 '.

Кто-нибудь знает, как заставить TXMLDocument открыть файл с символами "%25" в имени файла?

Файл не пустой - я проверил. Когда я удаляю символы "%25", все работает нормально. Пример имени файла: "что-то%25.xml"

Моя система и IDE: Windows 7 Home Premium с пакетом обновления 1; Delphi 2010;

1 ответ

Чтобы правильно загрузить файл с (например) "%25" в имени файла, мы должны использовать PathEncode в пути к файлу. Например:

uses idURI;

[...]

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

ВНИМАНИЕ: Если вы используете символы, которые, например, '' ', это не будет работать...

Другие вопросы по тегам