Здравствуйте всем. Выбираю в FIBQuery BLOB поле, содержащее XML файл. Как можно его содержимое запихнуть в TfsXMLDocument??? Все мозги сломал
Примерно так:
var
s: TFileStream;
Doc: TfsXMLDocument;
begin
s := TFileStream.Create(TmpFileName, fmOpenReadWrite);
s.Write(DataSet.FieldByName('XML_BLOB').AsString, Length(DataSet.FieldByName('XML_BLOB').AsString));
s.Free;
Doc := TfsXMLDovument.Create;
Doc.LoadFromFile(TmpFileName);
{Do anything with XML}
Doc.Free;
end;
Если есть обертка для TStringStream то можно обойтись и без промежуточного файла. Учтите только, что TfsXMLDocument хорошо обрабатывает только "родные" xml-файлы , в общем случае могут быть проблемы. Если есть необходимость работать с любым корректным xml документом, то используйте MSXML через OLE. В скриптах это возможно.
Комментарии
var
s: TFileStream;
Doc: TfsXMLDocument;
begin
s := TFileStream.Create(TmpFileName, fmOpenReadWrite);
s.Write(DataSet.FieldByName('XML_BLOB').AsString, Length(DataSet.FieldByName('XML_BLOB').AsString));
s.Free;
Doc := TfsXMLDovument.Create;
Doc.LoadFromFile(TmpFileName);
{Do anything with XML}
Doc.Free;
end;
Если есть обертка для TStringStream то можно обойтись и без промежуточного файла. Учтите только, что TfsXMLDocument хорошо обрабатывает только "родные" xml-файлы , в общем случае могут быть проблемы. Если есть необходимость работать с любым корректным xml документом, то используйте MSXML через OLE. В скриптах это возможно.