在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;            ...

图片内容