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

原创 2004年01月16日 10:14:00
在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;
...
//本文为转贴,作者不详,仅供大家参考

用JAXP解析XML文档

Java有多种方法可以分析XML文档,你可以选择现在已经成熟的标准技术,比如DOM和SAX,或者你可以选择专用于处理XML的Java API (Java API for XML Processing,...
  • zhou2002
  • zhou2002
  • 2007年11月29日 20:09
  • 751

java实现线程的两种方法有什么区别?

如果一个类通过继承Thread来实现多线程的话,则不适合多个线程共享资源,而通过实现Runnable就可以做到这一点,下面给lz举个例子: Java code class MyTheard ext...
  • u010572068
  • u010572068
  • 2013年07月03日 21:52
  • 1348

在 App_Code 文件夹中同时使用两种语言编程的方法

我们知道,在 ASP.NET 2.0 之后,在同一网站下,既可以使用C#编写代码,同时也可以使用VB.NET编写代码,可以正确编译。然而,在 App_Code 文件夹中,默认情况下,只能使用一种语言,...
  • net_lover
  • net_lover
  • 2008年11月26日 22:12
  • 2925

Servlet-两种转向区别

在Servlet中,转向到其它Servlet和JSP的时候,可以通过两种方式实现: (1)使用response对象的sendRedirect()方法 (2)使用RequestDispatcher对象的...
  • qq_28796345
  • qq_28796345
  • 2016年09月02日 21:17
  • 494

关于提示”XML 文档只能有一个顶层元素“问题的解决方法备忘

刚才在使用ajax跨域查询数据,调试中出现”XML 文档只能有一个顶层元素“的错误提示,检查了代码,顶层元素的确是只有一个,不知错误出在哪里!         查了万能的百度,试了几次。原因找到:...
  • longmen23
  • longmen23
  • 2013年03月09日 17:43
  • 9279

Java中线程的创建有两种方式

Java中线程的创建有两种方式:   1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类  ...
  • qq_20302155
  • qq_20302155
  • 2016年06月02日 11:15
  • 848

JAVA中创建线程对象的两种方法

1.通过继承Thread类创建线程    从Thread派生出一个新类,在其中加入属性和方法,同时覆盖run()方法。当创建这样一个派生类的新对象后,使用start()方法,即可启动该线程。publi...
  • DSB2510
  • DSB2510
  • 2010年06月17日 21:20
  • 4344

JAVA中线程创建的2种方法

Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线...
  • QQQQQQ654
  • QQQQQQ654
  • 2016年09月07日 17:05
  • 785

delphi 一个关于xml文件导入数据库的问题

function LoadXml(shortPath:string;var xmlobj: IXMLDOMDocument):boolean; var tmpXml:IXMLDOMDOCUMENT;...
  • wc1000
  • wc1000
  • 2015年07月18日 16:08
  • 323

Servlet的两种配置方式

在Servlet2.5规范之前,Java Web应用的绝大部分组件都通过web.xml文件来配置管理,Servlet3.0规范可通过Annotation来配置管理Web组件,因此web.xml文件可以...
  • ruoshui09172104
  • ruoshui09172104
  • 2016年03月21日 11:17
  • 2187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在delphi中使用xml文档有两种方法
举报原因:
原因补充:

(最多只允许输入30个字)