在delphi中使用xml文档有两种方法
点击次数:67 次 发布日期:2008-11-09 08:35:47 作者:源代码网
|
使用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) 软件开发网 www.mscto.com 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; ... 源代码网推荐 源代码网供稿. |
