Ошибка XPath

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
lightning
новенький
Сообщения: 11
Зарегистрирован: 18.02.2010 16:39:57

Ошибка XPath

Сообщение lightning »

Возникла проблема. Пытаюсь использовать функцию EvaluateXPathExpression, выдает ошибку "Unrecognized input after expression". Windows XP Professional Service Pack 2, Lazarus v0.9.28.2. Подскажите решение.

Код: Выделить всё

    ReadXMLFile(ADom, Stream);
    Stream.Position := 0;
    try
      XPathResult := EvaluateXPathExpression('/child::office:document-content/child::office:body/child::office:spreadsheet/child::table:table           
                                                                  /child::table:table-row/child::table:table-cell', ADom);
    except
      on E: Exception do
        ShowMessage('', '',  E.Message );
    end;
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Оно, может быть (может быть!), заработает, если:
1) Обновиться до svn trunk
2) ReadXMLFile заменить на конструкцию:

Код: Выделить всё

var
  parser: TDOMParser;
  inp: TXMLInputSource;
begin
  parser := TDOMParser.Create;
  parser.Options.Namespaces := True;
  inp := TXMLInputSource.Create(Stream);
  parser.Parse(Src, ADom);
  parser.Free;
end;


3. Передать третьим параметром в EvaluateXPathExpression() объект ADom.DocumentElement.

Недопилено пока, короче говоря...
lightning
новенький
Сообщения: 11
Зарегистрирован: 18.02.2010 16:39:57

Сообщение lightning »

Пробовала все три способа, не помогает, но ошибка уже другая: "Проект вызвал класс исключения 'EDOMNameSpace' с сообщением: EDOMNamespace in TXPathScanner.ParseStep" :(
Ответить