WEB开发网
开发学院软件开发Delphi 在delphi中使用xml文档有两种方法 阅读

在delphi中使用xml文档有两种方法

 2006-02-04 13:44:04 来源:WEB开发网   
核心提示:在delphi中使用xml文档有两种方法 使用xml broker, 是delphi 内置的,例: unit ShowXML; interface uses Classes HTTPApp Db DbClient Midas XMLBrokr WebComp MidItems; type TCus
在delphi中使用xml文档有两种方法
使用xml broker, 是delphi 内置的。例:
unit ShowXML;
interface
uses Classes  HTTPApp  Db  DbClient  Midas 
  XMLBrokr  WebComp  MidItems;
type
  TCustomShowXMLButton = class(TXMLButton  IScriptComponent)
  PRotected
   XMLMethodName: string;
   { IScriptComponent }
   procedure AddElements(AddIntf: IAddScriptElements);
   function GetSubComponents: TObject;
   { IWebContent implementation }
   function ImplContent(Options: TWebContentOptions;
    ParentLayout: TLayout): string; override;
  end;
  TShowXMLButton = class(TCustomShowXMLButton)
  public
   constructor Create(AOwner: TComponent); override;
  published
   property Custom;
   property Style;
   property StyleRule;
   property Caption;
   property XMLBroker;
   property XMLUseParent;
  end;
  TShowDeltaButton = class(TCustomShowXMLButton)
  public
   constructor Create(AOwner: TComponent); override;
  published
   property Custom;
   property Style;
   property StyleRule;
   property Caption;
   property XMLBroker;
   property XMLUseParent;
  end;
implementation
uses sysutils  MidProd;
resourcestring 
  sShowXML = 'Show XML';
  sShowDelta = 'Show Delta';
procedure TCustomShowXMLButton.AddElements(
  AddIntf: IAddScriptElements);
begin
  AddIntf.AddIncludeFile('xmlshow.js');
end;
function TCustomShowXMLButton.GetSubComponents: TObject;
begin
  Result := nil;
end;
function TCustomShowXMLButton.ImplContent(Options: TWebContentOptions;
  ParentLayout: TLayout): string;
var
  Attrs: string;
  Intf: ILayoutWebContent;
  FormVarName: string;
  RowSetVarName: string;
begin
  AddQuotedAttrib(Attrs  'NAME'  Name);
  AddQuotedAttrib(Attrs  'STYLE'  Style);
  AddQuotedAttrib(Attrs  'CLASS'  StyleRule);
  AddQuotedAttrib(Attrs  'VALUE'  Self.Caption);
  AddCustomAttrib(Attrs  Custom);
  if Assigned(XMLData.XMLBroker) then
  begin
   FormVarName := XMLData.XMLBroker.SubmitFormVarName;
   RowSetVarName := XMLData.XMLBroker.RowSetVarName(nil);  // Row row set var name
  end;
  if not (coNoScript in Options.Flags) then
   Result :=
    Format(''#13#10 
     [Attrs  RowSetVarName  XMLMethodName  sXMLReadyVar])
  else
   Result :=
    Format(''#13#10 
     [Attrs]);
  if Assigned(ParentLayout) and ParentLayout.GetInterface(ILayoutWebContent  Intf) then
   Result := Intf.LayoutButton(Result  GetLayoutAttributes);
end;
{ TShowXMLButton }
constructor TShowXMLButton.Create(AOwner: TComponent);
begin
  inherited;
  DefaultCaption := sShowXML;
  XMLMethodName := 'root';
end;
{ TShowDeltaButton }
constructor TShowDeltaButton.Create(AOwner: TComponent);
begin
  inherited;
  DefaultCaption := sShowDelta;
  XMLMethodName := 'getDelta()';
end;
另一种方法使用msxml.dll 如下:
....
....
procedure TDHEDForm.OpenBtnClick(Sender: TObject);
var
 pVIn : OleVariant;
 Prompt : OleVariant;
begin
  pVIn := '';
  Prompt := True;
  DHTMLEdit1.LoadDocument(pVIn  Prompt);
end;
procedure TDHEDForm.SaveBtnClick(Sender: TObject);
var
  vo  vb : OleVariant;
begin
  vo := DHTMLEdit1.CurrentDocumentPath;
  if (vo <> '') then 
  begin
   vb := false;
  end 
  else 
  begin
   vo := '';
   vb := true;
  end;                     
  DHTMLEdit1.SaveDocument(vo  vb);
end;
procedure TDHEDForm.SaveAsClick(Sender: TObject);
var
  vo  vb : OleVariant;
begin
  vo := '';
  vb := true;  
  DHTMLEdit1.SaveDocument(vo  vb);
end;
...
//本文为转贴,作者不详,仅供大家参考

Tags:delphi 使用 xml

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接