信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 6986|回复: 20
打印 上一主题 下一主题

Delphi程序如何操作XML文档终于有一个好的门路

[复制链接]

1868

主题

1878

帖子

1万

积分

积分
10928
跳转到指定楼层
宣传软件楼主
发表于 2017-8-6 23:02:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

软件教程首图:

软件教程分类:Delphi基础教程 

软件图文教程视频教程分类:软件图文教程 

软件教程难易程度:软件初级教程 

软件教程发布日期:2017-08-06

软件教程关键字:Delphi程序如何操作XML文档终于有一个好的门路

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件定制网站 网址:http://www.postbbs.com

软件教程详细描述
本帖最后由 群发软件 于 2017-8-6 23:07 编辑

Delphi程序如何操作XML文档终于有一个好的门路

 Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写。可以利用TXMLDocument把XML文档读到内存中,从而可以进行编辑、保存操作。TXMLDocument类是通过DOM(文档对象模型)接口来访问XML文档中的各个元素的。对于DOM接口的实现有多种方式,Delphi支持的方式有:1)微软的MSXML SDK,这种方式是通过COM对象来实现;2) Apache 的Xerces的实现方式;3)另外一种是开源OpenXML实现方式。对于不同的接口实现方式可以通过设定TXMLDocument的DOMVender来进行控制。

  支持XML的Delphi单元主要存在与…BorlandDelphi7SourceXml目录下,主要包括:XMLIntf,XMLDoc,xmldom,msxmldom,xercesxmldom,xdom,oxmldom等单元。


l  XMLIntf――包括了Borland自己定义的XML文档的接口;

l  XMLDoc――是对XMLIntf中所定义接口的Borland实现;

l  Xmldom――定义了DOM(文档对象模型)接口,这里对DOM接口进行了Borland的实现;

l  Msxmldom――实现微软对Xmldom中定义的接口的实现,主要调用微软的COM对象来实现,对Xmldom中定义接口的封装;

l Xercesxmldom――Borland通过Xerces XML DOM方式来实现对Xmldom中定义接口的封装;

l Oxmldom――Borland通过使用OpenXML来实现对Xmldom中定义接口的封装;


TXMLDocument类的属性,请参考Borland的帮助文件;


  读写XML文档
l 读取XML文档

通常情况下不通过直接使用TXMLDocument对象来进行XML文件的读取,而是使用XMLDoc单元中提供的几个有用的函数来读取XML文档,这些函数包括:

function LoadXMLDocument(const FileName: DOMString): IXMLDocument;

function LoadXMLData(const XMLData: DOMString): IXMLDocument; overload;

function LoadXMLData(const XMLData: string): IXMLDocument; overload;

function NewXMLDocument(Version: DOMString = '1.0'): IXMLDocument;

可以看出这些函数全部返回的是IXMLDocument接口,得到了IXMLDocument接口在进行文档的操作;

这些函数都是通过创建TXMLDocument对象来实现对XML文档的读取的;其中NewXMLDocument仅仅创建一个IXMLDocument接口。

可以这样利用NewXMLDocument来读取XML文档:

  XMLDoc := NewXMLDocument;

XMLDoc.LoadFromFile(FileName);


l 保存XML文档

可以通过下面的方式来保存XML文档:


XMLDoc := NewXMLDocument;

iRoot := IXMLDoc.CreateNode(‘TestXMLDocument’);

XMLDoc.DocumentElement := iRoot;

XMLDoc.SaveToFile(FileName);


  可以看出通过接口来操作XML文档是非常方便的;


选用不同类型的XML解析方式
  上面已经提到有三种方式实现DOM,也就是可以应用Borland提供的3种不同的XML解析器来对XML文档进行解析;


  三种解析器

  1、微软的解析器(MSXML SDK)

微软解析器主要应用在Windows中,在安装MSXML SDK的时候会安装解析器,同时IE浏览器也提供了解析器,这个解析器是一个COM。

  2、Apache的Xerces解析器

Borland自己实现了一个Xerces解析器,这个可以通过调用xercesxmldom.dll模块来实现;如果使用这个解析器可能需要同应用程序一起进行分发xercesxmldom.dll,XercesLib.dll,CC3260MT.DLL三个DLL文件

  3、OpenXML解析器

这个解析器的源代码存在于xdom.pas单元中,这个可以通过http://www.philo.de/xml/进行跟新下载,这个是一个德国人写的XML解析器;

  使用不同解析器的比较

对于三种方式的解析器比较如下:

  1、微软的解析器

微软的解析器当然好了,但是也不能排除存在的意外情况,在我个人的经验中,至少我们公司对于XML解析的方式,只有在IE6.0以上的版本才能够正常的工作;

至于,Borland同样是通过引入MSXML.DLL的接口来实现的,所以可以推理出,同样存在同样的问题;这个通过研究TMSDOMImplementation(msxmldom单元中)的实现方式可以得到证明,实现的过程中通过调用CoCreateInstance函数接口来实现解析的;

在发布解析XML的代码的时候可能就会存在由于IE的本版的不同,需要把IE6.0一同发布,比较麻烦;

  2、Borland的Xerces解析器

这种方式的解析器是通过 LoadLibrary(PChar(LibName));函数,LibName的内容是xercesxmldom.dll(Windows平台),libxercesxmldom.so.1(Linux平台)。那么就需要随同应用程序一起发布的Dll,就包括了xercesxmldom.dll,XercesLib.dll,CC3260MT.DLL;

这个发布相对于发布不同版本的IE6.0来说要相对简单一些;

  3、OpenXML解析器

由于存在xdom.pas单元,这个单元中包含了完全的XML解析的源代码,那么应用这种方式,可以避免软件发布的种种问题,这是由于解析的代码被静态编译在应用程序内部。唯一不好的地方就是应用程序的体积可能要大一些;


l 如何使用不同的解析器

我们可以写一个函数来使用不同的解析器;

function NewDiffXmlDocument(DOMVender: string;

Version: DOMString = '1.0'): IXMLDocument;

var

XMLDoc : TXMLDocument;

begin

XMLDoc := TXMLDocument.Create(nil);

XMLDoc.DOMVendor := GetDOMVendor(DOMVender);

Result := XMLDoc;

Result.Active := True;

if Version <> '' then

Result.Version := Version;

end;


其中DOMVender如果用Borland提供的三种方式进行解析的话,分别取值是:

Microsoft――存在于msxmldom.pas单元中的SMSXML常量;

Xerces――存在于xercesxmldom .pas单元中的SXercesXML常量;

OpenXML――存在于oxmldom.pas单元中的SOpenXML常量;


这个是由于在msxmldom,xercesxmldom,oxmldom三个单元的initailization部分,都通过调用RegisterDOMVendor函数,注册了不同的解析器接口;


当然,Borland同样提供了一种可以灵活进行扩展的机制来扩展用户自己的解析器,这个需要继承,TDOMVendor类(存在于xmldom单元中)。实际上,Borland自己就是通过这种方式来实现不同方式解析器的;具体的实现过程可以通过参考oxmldom单元中对xdom的封装;


有关许多接口,会需要通过xml进行数据交换,弄个例子,方便参考

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,XMLDoc,XMLIntf, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
Xml: TXMLDocument;
Rootnode,node : IXMLNode;
begin
Xml := TXMLDocument.Create(nil);
// Xml.LoadFromFile('aaa.xml');
try
//加入版本信息 ‘<?xml version="1.0" encoding="GB2312" ?> ’
Xml.Active := True;
Xml.Version := '1.0';
Xml.Encoding :='GB2312';

Rootnode := Xml.CreateNode('CIF_INFO');
Xml.DocumentElement := Rootnode;
node := Xml.CreateNode('TXNCODE');
Rootnode.ChildNodes.Add(node);
node.Text := '420001';
node := Xml.CreateNode('RESPCODE');
Rootnode.ChildNodes.Add(node);
node.Text := '0000';
node := Xml.CreateNode('CIFID');
Rootnode.ChildNodes.Add(node);
node.Text := '0030209728';
node := Xml.CreateNode('RESCODE');
Rootnode.ChildNodes.Add(node);
node.Text := '0000';
node := Xml.CreateNode('RESMSG');
Rootnode.ChildNodes.Add(node);
node.Text := '';

Xml.SaveToFile('aaa.xml');
xml.Active := False;
showmessage('创建成功!');
finally
Xml.Free;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
Xml: TXMLDocument;
Rootnode,node : IXMLNode;
nodelist:IXMLNodeList;
b,c,str :string;
i:Integer;
begin
Xml := TXMLDocument.Create(Application);


try
Xml.LoadFromFile('aaa.xml');
Xml.Active := True;

Rootnode := Xml.DocumentElement;
nodeList :=Rootnode.ChildNodes;
for i:=0 to nodelist.Count-1 do
    begin
      if  Rootnode.ChildNodes.NodeValue = null then
         begin
           c:='空';
         end
         else
         begin
           c:= Rootnode.ChildNodes.NodeValue;
         end;
      str:=str+c+#13#10;
    end;
//b := Rootnode.ChildNodes[ 'CIFID'].NodeValue;
Memo1.Lines.Add(str);
xml.Active := False;
finally
Xml.Free;
end;
end;
end.

创建XML文档,以及节点
------------------------------------------}
procedure TForm1.CreateXMLClick(Sender: TObject);
var
  pNode,cNode: IXMLNode;                   {定义两个节点: 父节点、子节点}
begin
  xmldcmnt1.XML.Clear;
  xmldcmnt1.Active := True;                {必须先激活}
  xmldcmnt1.Version := '1.0';              {设置版本}
  xmldcmnt1.Encoding := 'GB2312';          {设置语言}

  pNode := xmldcmnt1.AddChild('科室名单'); {添加的第一个节点是根节点, 现在的 pNode 是根节点}
  pNode.SetAttribute('备注', '测试');      {为根节点设置属性}

  pNode := pNode.AddChild('人员');         {为根节点添加子节点, 现在的 pNode 是 "人员" 节点}
  pNode.SetAttribute('职务', '科长');      {设置属性}
  pNode.SetAttribute('备注', '正局级');

  cNode := pNode.AddChild('姓名');          {为 pNode 添加子节点, 返回值 cNode 指向了新添加的节点}
  cNode.Text := '张三';

  cNode := pNode.AddChild('性别');
  cNode.Text := '男';

  cNode := pNode.AddChild('年龄');
  cNode.Text := '34';
end;

<?xml version="1.0" encoding="GB2312"?>
<科室名单 备注="测试">
     <人员 职务="科长" 备注="正局级">
           <姓名>张三</姓名>
           <性别>男</性别>
           <年龄>34</年龄>
     </人员>
</科室名单>


{-----------------------------------------
添加XML节点
------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
  newNode, newNodeAdd: IXMLNode;
begin
  newNode := xmldcmnt1.DocumentElement.AddChild('人员');
  newNode.Attributes['职务'] := '秘书';

  newNodeAdd := newNode.AddChild('姓名');
  newNodeAdd.Text := '小翠';

  newNodeAdd := newNode.AddChild('性别');
  newNodeAdd.Text := '女';

  Memo1.Lines := xmldcmnt1.XML; {查看}
  {会在尾部增加:
   <人员 职务="秘书"><姓名>小翠</姓名><性别>女</性别></人员>
  }
end;

<?xml version="1.0" encoding="GB2312"?>
<科室名单 备注="测试">
    <人员 职务="科长" 备注="正局级">
        <姓名>张三</姓名>
        <性别>男</性别>
        <年龄>34</年龄>
    </人员>
    <人员 职务="秘书">
       <姓名>小翠</姓名>
       <性别>女</性别>
    </人员>
</科室名单>


{-----------------------------------------
判断节点的类型
------------------------------------------}
//判断是否是支节点
procedure TForm1.Button1Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := xmldcmnt1.DocumentElement.ChildNodes[0]; {这是"人员"节点}

  if node.HasChildNodes and not node.IsTextElement then
    ShowMessage('是支节点'); {是支节点}
end;


//判断是否是叶节点
procedure TForm1.Button2Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := xmldcmnt1.DocumentElement.ChildNodes[0].ChildNodes[0]; {这是"姓名"节点}

  if node.IsTextElement then
    ShowMessage('是叶节点'); {是叶节点}
end;


//判断是否是文本节点
procedure TForm1.Button3Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := xmldcmnt1.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[0];
  {这是"张三"那个文本节点}

  if node.NodeName='#text' then
    ShowMessage('是文本节点'); {是文本节点}
end;


//判断是否是空节点
procedure TForm1.Button4Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := xmldcmnt1.DocumentElement.ChildNodes[4];
  {这是根节点下的第五个节点: "辅助人员", xml 中设为空}

  if not node.HasChildNodes then
    ShowMessage('是空节点'); {是空节点}
end;


{-----------------------------------------
NodeValue 和NodeName的区别
------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := xmldcmnt1.DocumentElement;

  node := node.ChildNodes[0]; {现在的 node 指向了第一个人员节点}

  //属性值: NodeValue 是可读写的
  ShowMessage(node.AttributeNodes[0].NodeValue); {科长}
  node.AttributeNodes[0].NodeValue := '正科长';
  ShowMessage(node.AttributeNodes[0].NodeValue); {正科长}

  //属性名: NodeName 是只读的
  ShowMessage(node.AttributeNodes[0].NodeName);  {职务}
  //node.AttributeNodes[0].NodeName := 'xxx';    {如果企图给属性名赋值会出错}

  node := node.ChildNodes[0]; {现在的 node 指向了第一个人员"张三"的姓名节点}

  //节点值: NodeValue 是可读写的
  ShowMessage(node.NodeValue); {张三}
  node.NodeValue := '张老三';
  ShowMessage(node.NodeValue); {张老三}

  //节点名: NodeName 是只读的
  ShowMessage(node.NodeName);  {姓名}
  //node.NodeName := 'xxx';    {如果企图给节点名赋值会出错}
end;


{-----------------------------------------
某节点的上一个节点、下一个节点、父节点
------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
  node,nodeX: IXMLNode;
begin
  node := XMLDocument1.DocumentElement;
  node := node.ChildNodes[1];
  node := node.ChildNodes[1];
  {现在的节点 node 指向了我们的例子中的第二个人员"李四"}

  ShowMessage(node.ChildNodes[0].NodeValue); {女}

  //获取该节点的上一个节点, 它上一个节点应该是李四的姓名
  nodeX := node.PreviousSibling;  {PreviousSibling}
  ShowMessage(nodeX.NodeValue);   {李四}

  //获取该节点的下一个节点, 它下一个节点应该是李四的年龄
  nodeX := node.NextSibling;      {NextSibling}
  ShowMessage(nodeX.NodeValue);   {43}

  //获取该节点的父节点
  nodeX := node.ParentNode;       {ParentNode}
  ShowMessage(nodeX.NodeName);    {人员}
end;


{-----------------------------------------
对象的 XML 属性
------------------------------------------}
//XMLDocument1 对象的 XML 属性
procedure TForm1.Button1Click(Sender: TObject);
begin
  {前面我们经常用这句话, 因为这里的 Lines 与 XML 同属于 TStrings}
  Memo1.Lines := XMLDocument1.XML;

  {如果不怕麻烦, 这样写也可以:}
  Memo1.Lines.Text := XMLDocument1.XML.Text;

  {如果知道了这一点, 那 XML 属性的功能可就多了, 并且这里的 XML 属性是可写的}
  {不过这里要谈的是节点的 XML 属性}
end;


//根节点的 XML 属性
procedure TForm1.Button2Click(Sender: TObject);
var
  node: IXMLNode;
begin
  {先看根节点: XMLDocument1.DocumentElement}
  node := XMLDocument1.DocumentElement;

  //Memo1.Lines := node.XML; {这一句会出错}
  {因为节点的 XML 属性是 WideString 类型的, 应该这样:}
  Memo1.Lines.Text := node.XML; {将会读出根节点与根节点包含的所有内容}

  {还有一个更大的区别: 节点的 XML 是只读的!}
end;


//子节点的 XML 属性
procedure TForm1.Button3Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := XMLDocument1.DocumentElement;
  node := node.ChildNodes[0];

  Memo1.Lines.Text := node.XML; {会显示一个子节点的全部}
end;


//属性的 XML 属性
procedure TForm1.Button4Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := XMLDocument1.DocumentElement;
  node := node.AttributeNodes[0]; {属性也是 IXMLNode 类型的}

  ShowMessage(node.NodeName);  {备注}
  ShowMessage(node.NodeValue); {测试}

  {用 XML 属性一次把他们都读出来:}
  ShowMessage(node.XML);       {备注="测试"}
end;


//叶节点的 XML 属性
procedure TForm1.Button5Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := XMLDocument1.DocumentElement;
  node := node.ChildNodes[0];
  node := node.ChildNodes[0];
  node := node.ChildNodes[0]; {这就是叶节点了}

  ShowMessage(node.XML);  {张三}

  {这时的 XML 属性和 Text 属性一样了}
  ShowMessage(node.Text); {张三}
end;



1        四川茂县山体塌方        新闻 视频 图片        13775
四川茂县山体塌方 初步估计7000方左右
【四川茂县山体塌方 初步估计7000方左右】中新网8月6日电 据四川阿坝州公路局消息:今日15时45分,国道213线K769+700(茂县石大关旧关楼)发生山体高位坍方7000余...
2        女子狂撕咬宠物狗        新闻 视频 图片        3586
女子狂撕咬宠物狗将狗毛吐到地上 坐立不安状似嗑过药
一名女子抱着小狗骂骂咧咧,连咬小狗好几口,还把满嘴的狗毛吐到地上。小狗几次试图挣脱她的怀抱,都被拽了回来。视频发布者表示女子坐立不安,看起来像是磕了药。...
3        吉林千人同吃拌饭        新闻 视频 图片        60714
吉林千人同吃拌饭 原材料重达百斤盛放在巨型木锅中
导读:原标题:吉林千人同吃拌饭 原材料重达百斤盛放在巨型木锅中, 2017年08月6日,吉林省延吉市,“2017食运会美食嘉年华”正式启动,在食运会美食嘉年华活动现场...
4        郑州现最萌街道        新闻 视频 图片        39225
5        王毅会见朝鲜外相        新闻 视频 图片        17132
6        女学生网吧住一月        新闻 视频 图片        85235
7        泸州蚊子被热死        新闻 视频 图片        100623
8        游客行纳粹礼被捕        新闻 视频 图片        253641
9        日文游戏全网禁售        新闻 视频 图片        45054
10        藏快递车混入清华        新闻 视频 图片        87606

11        马蓉移民澳洲        新闻 视频 图片        63899

unto万国商业网用什么信息发布软件好用nextZZ91再生资源网用什么信息发布软件比较好用?
回复

使用道具 举报

0

主题

591

帖子

591

积分

积分
591
信息发布软件沙发
发表于 2017-8-11 03:41:31 | 只看该作者
指导,模版装修的很漂亮。很满意。下次还会再来

回复 支持 反对

使用道具 举报

0

主题

619

帖子

603

积分

积分
603
推广工具板凳
发表于 2017-8-11 05:57:06 | 只看该作者
高大上了,服务很周到,能达到我想要的效果,设计后生意越来越好了!好开心啊!

回复 支持 反对

使用道具 举报

0

主题

660

帖子

660

积分

积分
660
软件定制开发地板
发表于 2017-8-11 22:55:47 | 只看该作者
卖家服务好,模板质量好。发货快速。

回复 支持 反对

使用道具 举报

0

主题

604

帖子

608

积分

积分
608
5#定制软件#
发表于 2017-8-15 17:04:20 | 只看该作者
酷很霸气哦!服务真的真的很好哟~~赞一个,还会推荐其他商家来的哦~~棒

回复 支持 反对

使用道具 举报

0

主题

604

帖子

602

积分

积分
602
6#定制软件#
发表于 2017-8-17 04:31:29 | 只看该作者
使用了,界面清爽,功能齐全,是想要的效果。

回复 支持 反对

使用道具 举报

0

主题

623

帖子

612

积分

积分
612
7#定制软件#
发表于 2017-8-21 04:00:06 | 只看该作者
,大爱,喜欢,是我想要的,不错,值得购买,

回复 支持 反对

使用道具 举报

0

主题

608

帖子

616

积分

积分
616
8#定制软件#
发表于 2017-8-22 14:34:41 | 只看该作者
事情好垃圾的

回复 支持 反对

使用道具 举报

0

主题

602

帖子

594

积分

积分
594
9#定制软件#
发表于 2017-8-22 22:06:08 | 只看该作者
这次合作,整个过程很顺利,今后我的店铺还是会请你帮我装修,希望越来越好

回复 支持 反对

使用道具 举报

0

主题

636

帖子

624

积分

积分
624
10#定制软件#
发表于 2017-8-23 05:34:07 | 只看该作者
.耐心。负责

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
信息发布软件AIWROK软件滑动方法集合示例
AIWROK软件滑动方法集合示例
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例
信息发布软件AIWROK软件JS循环小示例
AIWROK软件JS循环小示例
信息发布软件AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法
信息发布软件AIWROK软件创建可暂停恢复的多线程任务
AIWROK软件创建可暂停恢复的多线程任务
信息发布软件AIWROK软件类型转换方法例子
AIWROK软件类型转换方法例子
信息发布软件AIWROK软件H5脚本执行与进度显示
AIWROK软件H5脚本执行与进度显示 .
信息发布软件AIWROK软件根据时间段执行异步任务支持多线程并行处理
AIWROK软件根据时间段执行异步任务支持多线程并行处理
信息发布软件H5自动开关执行脚本功能演示
H5自动开关执行脚本功能演示
信息发布软件AIWROK软件H5单选脚本运行示例
AIWROK软件H5单选脚本运行示例
信息发布软件H5任务脚本选择与执行中心
H5任务脚本选择与执行中心
信息发布软件H5里CheckBox控件演示
H5里CheckBox控件演示
信息发布软件AIWROK软件正则用法实际例子
AIWROK软件正则用法实际例子
信息发布软件AIWROK软件权限管理器实现
AIWROK软件权限管理器实现
信息发布软件AIWORK软件节点方法无碍示例子
AIWORK软件节点方法无碍示例子
信息发布软件JSON.stringify 和 JSON.parse 完整示例
JSON.stringify 和 JSON.parse 完整示例
信息发布软件AIWROK软件展示JavaScript各种语句标识符的用法
AIWROK软件展示JavaScript各种语句标识符的用法
信息发布软件JS巧妙地组合使用各种条件语句
JS巧妙地组合使用各种条件语句
信息发布软件AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
信息发布软件HID中文输入智能打字功能
HID中文输入智能打字功能
信息发布软件AIWROK软件对象工具函数库例子
AIWROK软件对象工具函数库例子
信息发布软件AIWROK软件H5交互演示黄色主题
AIWROK软件H5交互演示黄色主题
信息发布软件H5单按钮执行脚本示例
H5单按钮执行脚本示例
信息发布软件苹果H5界面完整调用脚本示例
苹果H5界面完整调用脚本示例
信息发布软件AIWROK软件平台设备信息全面检测工具例子
AIWROK软件平台设备信息全面检测工具例子
信息发布软件AIWROK创建和放大日志窗口并展示动态内容
AIWROK创建和放大日志窗口并展示动态内容
信息发布软件AIWROK软件device相关方法获取设备信息例子
AIWROK软件device相关方法获取设备信息例子[/backcolor]
信息发布软件数据库MySQL实时内容随机调用
数据库MySQL实时内容随机调用
信息发布软件AIWROK软件分享一个特效苹果H5页面
AIWROK软件分享一个特效苹果H5页面
信息发布软件数据库MYQ业务流程心跳程序启动
数据库MYQ业务流程心跳程序启动
信息发布软件数据库MySQL功能支持创建表插入中文数据查询删除功能例子
数据库MySQL功能支持创建表插入中文数据查询删除功能例子
信息发布软件AIWROK软件Zip 高级操作复杂示例
AIWROK软件Zip 高级操作复杂示例
信息发布软件AIWROK软件txt_文件读写方法小结
AIWROK软件txt_文件读写方法小结
信息发布软件AIWROK软件file文件操作方法小结
AIWROK软件file文件操作方法小结
信息发布软件AIWORK软件配置读写H5演示配套脚本
AIWORK软件配置读写H5演示配套脚本
信息发布软件AIWROK配置读写功能演示示例
AIWROK配置读写功能演示示例
信息发布软件AIWROK截图缓存工具
AIWROK截图缓存工具
信息发布软件AIWROK线程许可证工具
AIWROK线程许可证工具
信息发布软件整理了AIWROK环境下常用的Date对象和sleep对象方法
整理了AIWROK环境下常用的Date对象和sleep对象方法
信息发布软件FastUI界面普通用法
FastUI界面普通用法
信息发布软件FastUI界面类[window]方法小结
FastUI界面类[window]方法小结 方法 1:close(关闭指定窗口)方法 2:closeAll(关闭所有窗口)方法 3:loadUI(加载 UI 界面)方法 4:onClose(监听窗口关闭事件)方法 5:onLoad(监听窗口加载事件)方法 6:setFull(设置窗口全屏)方法 7:setHeight(设置窗口高度)方法 8:setHidden(隐藏窗口)方法 9:setLeft(设置窗口 X 轴坐标)方法 10:setTop(设置窗口 Y 轴坐标)方法 11:setVisable(显示隐藏的窗口)方
信息发布软件AIWROK软件按钮监听UI界面与事件监听功能演示
AIWROK软件按钮监听UI界面与事件监听功能演示.
信息发布软件AWIROK软件多选[uiCheckBox]方法小结
AWIROK软件多选方法小结 方法一:findByID 加载多选控件方法二:getAllChecked 获取所有选中项方法三:getAllSelect 获取所有选项方法四:getChecked 获取某个选项是否选中方法五:setChecked 设置某个选项是否选中方法六:setCheckeds 设置多个选项是否选中方法七:setHeight 设置高度
信息发布软件AIWROK日志演示开启日志显示 → 放大 → 关闭代码
AIWROK日志演示开启日志显示 → 放大 → 关闭代码
信息发布软件&#127983;AIWROK数组方法高级应用案例
🏯AIWROK数组方法高级应用案例
信息发布软件AIWROK软件日志悬浮窗简化版自动切换位置
AIWROK软件日志悬浮窗简化版自动切换位置
信息发布软件AIWROK软件String实例演示
AIWROK软件String实例演示
信息发布软件AIWROK软件S内置String类[String]方法小结
AIWROK软件S内置String类[String]方法小结 方法 1:charAt[/backcolor]方法 2:charCodeAt[/backcolor]方法 3:indexOf[/backcolor]方法 4:lastIndexOf[/backcolor]方法 5:length[/backcolor]方法 6:match[/backcolor]方法 7:replace[/backcolor]方法 8:replaceAll[/backcolor]方法 9:split[/backcolor]方法 10:startsWith[/backcolor]方法 11:substr[/backcolor]方法 12:substring[/backcolor]方法 13:trim[/backcol
信息发布软件AIWROK软件完整的WebSocket客户端示例
这段代码是一个完整的WebSocket客户端示例,用于连接到指定的WebSocket服务器并处理各种事件。具体来说,代码的作用如下: 定义服务器地址:首先定义了一个服务器的IP地址和端口号 var ip = "154.37.221.104:8886";。 创建WebSocket对象:尝试创建一个新的WebSocket对象 var ws = new WebSocket();。注意,这里的 new ws() 应该是 new WebSocket()。 添加事件监听器:代码中尝试为WebSocket对象添加事件监听器,但这里有一个错误。
信息发布软件AIWROK软件苹果系统中实现四种基本滑动操作
AIWROK软件苹果系统中实现四种基本滑动操作
信息发布软件hid的滑动没有百分比坐标滑动吗
hid的滑动没有百分比坐标滑动吗
信息发布软件单选控件[uiRadioButton]方法小结
单选控件方法小结 方法 1:加载单选控件[/backcolor]方法 2:获取选中项[/backcolor]方法 3:设置高度[/backcolor]方法 4:设置选中项[/backcolor]
信息发布软件AIWROK软件无障碍触摸操作示例:点击、左右滑动、上下滑动实例
AIWROK软件无障碍触摸操作示例:点击、左右滑动、上下滑动实例
信息发布软件AIWROK软件安卓随机工具应用函数生成
AIWROK软件安卓随机工具应用函数生成
信息发布软件用在AIWORK软件代码中的实用符号分类整理2
用在AIWORK软件代码中的实用符号分类整理2 软件IDE用Emoji符号分类整理(含用途说明)一、表情与情感1. 微笑 [*]😀 笑脸(基础开心反馈,用于操作成功后的友好提示) [*]😃 笑脸大眼睛(强化开心情绪,用于重要任务完成后的积极反馈) [*]😄 笑脸和微笑的眼睛(温和友好的状态,用于日常交互中的正向回应) [*]😁 带着微笑的眼睛(轻松愉悦的反馈,用于轻度成功或趣味操作) [*]
信息发布软件AIWROK软件图像二值化的各种方法和应用场景
AIWROK软件图像二值化的各种方法和应用场景
信息发布软件AIWROK软件找图区分页面变化和卡死状态
AIWROK软件找图区分页面变化和卡死状态
信息发布软件AIWROK苹果系统Map 数据管理[map]小结
AIWROK苹果系统Map 数据管理[map]小结 方法一:add(添加键值对)[/backcolor]方法二:delete(删除指定键值对)[/backcolor]方法三:clear(清空所有键值对)[/backcolor]方法四:get(根据键获取值)[/backcolor]方法五:getAllValue(获取所有值)[/backcolor]方法六:toString(转换为字符串)[/backcolor]完整示例:

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-2-5 05:14 , Processed in 0.351673 second(s), 56 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表