在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; ... //本文为转贴,作者不详,仅供大家参考
|