Сохранение результатов в рекордную проблему - PullRequest
1 голос
/ 22 марта 2009

Я анализирую XML-файл и сохраняю результаты в записи, но у меня возникли некоторые проблемы.

Я пытаюсь сохранить результаты (содержимое моих тегов XML) в полях своей записи.

Моя запись (на данный момент есть только 1 набор элементов XML). Я думаю, что Parser.curconten вызывает проблему ...

    Type

TXMLAlert=Record
alert, desc, action:string;
end;

Var
MyXMLAlert:TXMLAlert;

MyXMLAlert.alert:=Parser.CurContent
MyXMLAlert.desc:=Parser.CurContent
MyXMLAlert.action:=Parser.CurContent

Вот мой код парсера:

procedure ProcessXML();
var
  Parser : TXmlParser;
  rule, alert: string;
  i:integer;
  memo1:Tmemo;


begin
  Parser := TXmlParser.Create;
  Parser.Normalize := TRUE;
  Parser.LoadFromFile ('c:\parser.xml');
  Parser.StartScan;

  while Parser.Scan do
    case Parser.CurPartType of
     ptStartTag,
    ptEmptyTag : Form1.Memo1.Lines.Add ('New Element: ' + Parser.CurName);
    ptContent  : Form1.Memo1.Lines.Add ('Content of Element ' +
    Parser.Curname + ':' + Parser.CurContent);
      end;
  Parser.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  ProcessXML();
end;

end.

Программа парсера в порядке и содержимое тегов отображается в memo1 ... Есть идеи, почему запись не собирает результаты контента? Спасибо, Lazerspewpew

1 Ответ

1 голос
/ 22 марта 2009

Не похоже, что вы звоните Scan между каждым вызовом на CurContent в вашем коде записи, так что вы фактически не будете проходить через ввод. Также не похоже, что ваш код записи пропускает начальные и конечные теги так, как вы запоминаете код. В этом отношении я не могу быть уверен, что вы выполняете те же настройки в своем коде записи, что и в своем памятном коде. В тот момент, когда выполняется код вашей записи, относится ли Parser к действительному экземпляру TXmlParser, который уже загрузил данные из файла? Он уже начал сканирование?

Отступы в случайном порядке и несколько неиспользуемых переменных затрудняют уверенность в том, что мы действительно видим код, который в любом случае вызывает проблему, которую вы описываете.

Что получает элемент управления памяткой? (Скопируйте и вставьте.) А что получает запись вместо того, что вы ожидали?

...