⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdsxsltdm.pas

📁 delphi实例大全非常经典
💻 PAS
字号:
unit CdsXsltDm;

interface

uses
  Windows, Messages, SysUtils, Classes, HTTPApp, DBTables, Provider, Db,
  DBClient, OleServer, xmldom, XMLIntf, msxmldom, XMLDoc, XSLProd;

type
  TWebModule1 = class(TWebModule)
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    Table1: TTable;
    XMLDom: TXMLDocument;
    XSLDom: TXMLDocument;
    HTMLDom: TXMLDocument;
    procedure WebModule1WebActionItem1Action(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  WebModule1: TWebModule1;

implementation

uses WebReq;

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  xslfile: string;
  attr: IDOMAttr;
begin
  // open the client data set and load its XML in a DOM
  ClientDataSet1.Open;
  XmlDom.Xml.Text := ClientDataSet1.XMLData;
  XmlDom.Active := True;
  // load the requested xsl file
  xslfile := Request.QueryFields.Values ['style'];
  if xslfile = '' then
    xslfile := 'customer.xsl';
  xslDom.LoadFromFile ('c:\websites\xsl\' + xslfile);
  XSLDom.Active := True;
  if xslfile = 'single.xsl' then
  begin
    attr := xslDom.DOMDocument.createAttribute('select');
    attr.value := '//ROW[@CustNo="' + Request.QueryFields.Values ['id'] + '"]';
    xslDom.DOMDocument.getElementsByTagName ('xsl:apply-templates').
      item[0].attributes.setNamedItem(attr);
  end;
  // do the transformation
  HTMLDom.Active := True;
  xmlDom.DocumentElement.transformNode (
    xslDom.DocumentElement, HTMLDom);
  Response.Content := HTMLDom.XML.Text;
  // eventually save the xml (for debugging only)
  if Request.QueryFields.Values ['savexml'] = 'yes' then
    xmlDom.SaveToFile ('c:\websites\xsl\customer.xml');
end;

initialization
  if WebRequestHandler <> nil then
    WebRequestHandler.WebModuleClass := TWebModule1;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -