当前位置:编程学习 > XML/UML >>

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

 

 

在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;
            ...
补充:软件开发 , Delphi ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,