在delphi中使用xml文档的两种方法
来源:岁月联盟
编辑:exp
时间:2009-05-01
在delphi中使用xml文档有两种方法,一是使用delphi 内置的xml broker;一是使用msxml.dll 。
一 使用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; ...
| |