admin 管理员组文章数量: 1184232
2024年3月20日发(作者:小程序制作需要审核资质吗)
一、 欢迎
本帮助文件提供从SimDesign BV的NativeXml组件的信息。
二、 购买NativeXml!
NativeXml现在是开源的,但支持是仅专门适用于购买NativeXml的客户。
您可以通过此链接购买NativeXml:
/
价格:29.95欧元
采购NativeXml的优势:
两年的通过电子邮件或特殊的“NativeXml Source”论坛支持,接收测试和修正,
并从“NativeXml Source”论坛发布
三、
使用NativeXml的例子
本章提供有关如何使用NativeXml一些例子。
3.1.例子A:XML的装载、存储和导出
这个例子显示如何加载一个XML文档,然后以可读格式导出到一个TMemo领域。
拖放一个TEdit(Edit1),TButton(Button1)和一个TMemo到你的窗体,然后
连接到下面的按钮的OnClick事件代码。填写文件名到Edit1,然后按一下按钮,您会看
到在memo控件中列出XML文件的内容。
procedure 1Click(Sender: TObject);
var
ADoc: TNativeXml;
begin
;
ADoc := ;
try
omFile();
mat := xfReadable;
:= oString;
finally
;
end;
end;
注意,mat:= xfReadable将确保该文件是以易读的形式列出(以回
车符和缩进)。
3.2.例子B:连接到节点
这个例子显示了如何访问在XML文件中的各个节点。一个节点可以从一个普通的XML
标记、注释、CDATA结构,等等东西。该示例演示如何使用一个简单的双循环列出前2层
的节点。
添加Tedit、TButton和TMemo到窗体,然后将下面的事件代码连接到按钮的
OnClick。然后在Edit1中填写文件名,按一下按钮,前两层的节点将会在memo控件中
列出。
procedure 2Click(Sender: TObject);
var
i, j: integer;
ADoc: TNativeXml;
begin
;
ADoc := ;
try
omFile();
if assigned() then with do
for i := 0 to NodeCount - 1 do begin
(Nodes[i].Name);
for j := 0 to Nodes[i].NodeCount - 1 do
(' ' + Nodes[i].Nodes[j].Name);
end;
finally
;
end;
end;
3.3.例子C:事件驱动处理
这个例子说明了NativeXml可以用一个SAX-like的方式,按顺序读文件,每当一个
节点初始化和加载时产生事件。
添加一个TButton(Button3)和一个TMemo(Memo1)到您的窗体,然后将
NativeXml包括在uses中。接下来,键入下面的k事件处理程序代码。
procedure 3Click(Sender: TObject);
var
ADoc: TNativeXml;
begin
;
ADoc := ;
try
New := DoNodeNew;
Loaded := DoNodeLoaded;
omFile();
finally
;
end;
end;
键入下面的程序代码在新的TForm1中:
function (ACount: integer): string;
begin
while ACount > 0 do begin
Result := Result + ' ';
dec(ACount);
end;
end;
procedure New(Sender: TObject; Node: TXmlNode);
begin
(Format('New : %sName=%s', [Indent(pth),
]));
end;
procedure Loaded(Sender: TObject; Node: TXmlNode);
begin
(Format('Loaded: %sName=%s, Value=%s',
[Indent(pth), , sString]));
end;
当一个节点被找到,OnNodeNew事件被触发,每当一个节点完全装载,
OnNodeLoaded事件被触发。
如果您不希望保留在内存中的XML文件的完整副本,例如,对大型XML文件,你可
以直接删除该节点,释放其内存。在这种情况下,添加以下代码到OnNodeLoaded事件:
procedure Loaded(Sender: TObject; Node: TXmlNode);
begin
(Format('Loaded: Name=%s, Value=%s', [,
sString]));
if pth > 0 then begin
(Format('Deleted: Name=%s', []));
;
end;
end;
3.4.例子D:创建一个简单的XML文件
这个例子演示如何创建一个简单的XML文件,在根节点下的一个节点,有一个属性和
子节点。我们将尝试创建这个XML文件:
下面是一个过程的代码,创建此文件,并以易读格式保存到一个文件名为
“C:”的文件:
procedure CreateXML;
var
ADoc: TNativeXml;
begin
// Create new document with a rootnode called "Root"
ADoc := Name('Root');
try
// Add a subnode with name "Customer"
with w('Customer') do begin
// Add an attribute to this subnode
WriteAttributeInteger('ID', 123456);
// Add subsubnode
WriteString('Name', 'John Doe');
end;
// Save the XML in readable format (so with indents)
mat := xfReadable;
// Save results to a file
File('c:');
finally
;
end;
end;
3.5.例子E:使用UTF8和Unicode编码的文件(支持
widestring)
这个例子显示了如何创建和加载支持widestrings的XML文件。
Xml内部编码
NativeXml可以工作在两种“模式”:要么所有的内部字符串是普通的ANSI字符串或
所有内部字符串是UTF8编码字符串。字符串类型不会改变(它仍然是“string”)。虽然
Delphi7有一种特殊类型“Utf8String”,但没有使用,以保持较低的Delphi版本的兼容性。
为了确保你的XML文档可以使用widestrings,创建它,然后直接设置属性
“Utf8Encoded”为True,如下所示:
procedure CreateXML;
var
ADoc: TNativeXml;
begin
ADoc := Name('Root');
try
// Make sure to be able to handle widestrings
8Encoded := True;
// ..add all your creation code here
finally
;
end;
end;
Xml外部编码
保存您的文档时,为外部文件或流选择适当的编码(SaveToStream也需要正确的编
码保存)。设置属性“ExternalEncoding”到其中的任何值:
se8bit:这将返回一个纯ASCII文件,所有的Unicode/widestring字符值高于$FF。
这是默认值。
seUTF16LE:这将返回一个Unicode文件的字节顺序标记$FF FE。这应该作为一个
Unicode文件的默认。
seUTF16BE:这将返回大字节(big-endian)Unicode文件的字节顺序标记$FE FF。
seUTF8:这将返回一个UTF-8编码文件的字节顺序标记$FF BB BF。UTF-8在大部
分字符为西方或拉丁语时,是更好的存储方式。然而,它可以为中文或日文等多种语言提供
更多的空间。
这里有一个关于如何设置外部编码的例子:
procedure CreateXML;
var
ADoc: TNativeXml;
begin
ADoc := Name('Root');
try
// Make sure to be able to handle widestrings
8Encoded := True;
// ..add all your creation code here
// Save to unicode
alEncoding := seUTF16LE;
ngString := 'UTF-16';
File('c:');
finally
;
end;
end;
3.5.3.添加widestrings
添加widestrings到文档很容易。每个节点的值可以设置为widestring,使用属性的
ValueAsWidestring,并可以在一般情况下使用FromWidestring函数添加widestrings。
下面的例子代码,增加了一个新的节点到根,然后设置节点名字(Name)为Aname,
节点值(value)为AValue:
procedure AddNode(ADoc: TXmlDocument; AName, AValue: widestring);
begin
with do
with NodeNew(FromWidestring(AName)) do
ValueAsWidestring := AValue;
end;
3.5.4.加载XML文件的扩展字符
当读取包含扩展字符的XML文件,重要的是在引入前设置Utf8Encoded为True,像
这样:
function CreateXMLAndLoadFromFile(AFilename: string): TNativeXml;
begin
Result := ;
8Encoded := True;
omFile(AFilename);
end;
当从一个流(例如从一个TCP连接)读入,流并不总是包含字节顺序标记(BOM)。
但是,如果流是Unicode,NativeXml将承认它,因此没有任何帮助。例如:
function CreateXMLAndLoadFromStream(S: TStream): TNativeXml;
begin
Result := ;
8Encoded := True;
omStream(S);
end;
如果你知道你的流具有一定的编码,你可以强制NativeXml使用这种编码,例如:
function CreateXMLAndLoadFromUTF8Stream(S: TStream): TNativeXml;
begin
Result := ;
8Encoded := True;
// The stream is encoded using UTF8
alEncoding := seUTF8;
omStream(S);
end;
一、
四、符号引用(Symbol Reference)
4.1.类(Classes)
nentAccess类
TComponentAccess = class(TComponent)
entState
property ComponentState;
ponentState
procedure SetComponentState(const AState: TComponentState);
eXml类
TNativeXml = class(TPersistent)
TNativeXml是XML文件的载体。创建一个TNativeXml,然后使用方法
LoadFromFile、LoadFromStream或ReadFromString加载XML文档到内存中。
或者从头开始使用w添加节点,并最终SaveToFile和SaveToStream
保存结果为一个XML文档。用属性Xmlformat = xfReadable确保缩进(易读)输
出。
arsing
property AbortParsing: boolean;
如果您使用一个SAX-like方式的OnNodeNew和OnNodeLoaded事件,并要
中止解析过程,设置AbortParsing为True。例如:
procedure XmlNodeLoaded(Sender: TObject; Node:
TXmlNode);
begin
if ( = 'LastNode') and (Sender is TNativeXml) then
TNativeXml(Sender).AbortParsing := True;
end;
Encoding
property BinaryEncoding: TBinaryEncodingType;
当调用Read和Write时,将使用什么样
的二进制编码。默认值是xbeBase64。
tString
property CommentString: UTF8String;
可以通过此属性访问上方的根元素
版权声明:本文标题:NativeXML 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710886699a578030.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
两台电脑用一根网线连接组成局域网共享传输文件_网站连接两台电脑传文件
两台电脑传输文件有很多方法,小的qq就解决了,稍微大点的可以通过安装的快传软件来达到目的,当然用u盘也是可以的。这都还好,那如果传输文件数量多或者大文件(超过百G的)的时候该怎么办呢,硬盘是一种,但因为是传输的中间介质,所以比较麻烦,
R3nzSkin常见问题解答:解决注入失败、游戏崩溃等10大痛点
R3nzSkin常见问题解答:解决注入失败、游戏崩溃等10大痛点 R3nzSkin作为一款热门的《英雄联盟》皮肤修改工具,帮助玩家自定义游戏体验。但在使用过程中,许多用户会遇到注入失败、游戏崩溃等问题。本文汇总了10个最常见的
Windows虚拟机中镜像文件_虚拟机镜像iso文件
访问微软官方Windows 10下载页面:https: 点击“立即下载工具”按钮,下载 。这是一个小型应用程序,用于帮助用户创建Windows 10安装介质。 运
宽带连接网页故障解析
宽带已连接网页打不开的若干原因和处理办法一、网络设置的问题 这种原因比较多出现于需要手动指定IP、网关、DNS服务器联网方式下,及使用代理服务器上网的。仔细检查计算机的网络设置。 二、DNS服务器的问题 当IE无法浏览网
cf-blue-green-deploy 项目使用教程
cf-blue-green-deploy 项目使用教程 1. 项目的目录结构及介绍 cf-blue-green-deploy├── acceptance├── coverage├── fixtures├──
迅雷极速版任务出错的解决办法(亲测可用)_极速版报错任务出错的处理方法
最近迅雷极速版bt下载许多任务出现-任务出错,通过修改hosts文件可以绕过迅雷的解析服务器,方法如下:windows系统进入目录 C:WindowsSystem32driversetc,
解读Autorun.inf病毒和autorun.inf_光盘里有autorun exe
这几天我的机子病毒大暴发,其中有一种病毒就是关于autorun.inf的。和它一起运行的是sxs.exe文件。它在每个驱动盘下都有这两个文件,并且文件夹选项里显示所有隐藏文件和文件夹选中后又会被改回去,很苦恼啊!于是上网查了一些这方面
dos下删除病毒autorun.inf
今天有个同学的电脑中病毒了,但是电脑里有很多重要的东西,中的病毒式autorun.inf 非常顽固的老病毒,只要删除不干净,就会立即快速的复制,把电脑里的东西都给植入这种文件,这种文件一般是在根目录下,在打开每个驱动盘的时候,病毒就
删除autorun.inf病毒的批处理 简单三招预防_autoruninf批处理
选择“显示隐藏文件”这一选项后,发现U盘有个文件闪出来一下就马上又消失了,而再打开文件夹选项时,发现仍就是“不显示隐藏文件”这一选项。而且刚发现点击C、D等盘符图标时会另外打开一个窗口!这就是臭名昭著的autorun.inf病毒,下面
彻底解决网页后台图片不显示问题的完整方案
简介:在网页开发中,图片无法正常显示是常见但棘手的问题,可能由URL错误、MIME类型配置不当、浏览器缓存、兼容性问题或服务器设置等多种原因引起。本文结合“ie.reg”文件线索,重点分析与Internet Explorer浏览器相关
梦幻西游手游详细图文架设教程_手游客户端假设怎么设置
前言 提到梦幻西游,大家肯定不陌生。在 2001 年正式上线,它成为了很多人的第一款网游,陪伴了一代又一代的玩家成长。没错,今天要架设的就是梦幻西游手游! 本文讲解梦幻西游手游架设教程,经典的职业、音乐、场景、玩法,就
一学就会:EasyRecovery简易指南帮你快速恢复误删的文件
简介:EasyRecovery是一款高效的文件恢复软件,它帮助用户恢复因误删除、格式化或其他原因丢失的文件。该工具扫描未被覆盖的硬盘空间,找回丢失文件的元数据和内容。它支持包括硬盘、外部硬盘、USB驱动器和SD卡在内的多种存储设备,并
EasyRecovery数据恢复软件教学视频,从零开始,助你轻松掌握数据保护
1.介绍 EasyRecovery 是一款操作安全、价格便宜、用户自主操作的数据恢复软件,它支持从各种各样的存储介质恢复删除或者丢失的文件,其支持的媒体介质包括:硬盘驱动器、光驱、闪存、硬盘、光盘、U盘移动硬盘、数码相机、手
深度剖析:小米AX1800路由器SSH与IPv6网关设置的实操技巧
WiFI6版本弃子,小米路由器AX1800,通过配置文件永久开启ssh和ipv6传入网关设置作为小米路由器的第一款 wifi6路由器(ax.),最近一次的更新是2021年底,版本为
狂怒2启动失败?WPCAP.DLL错误?一步步轻松搞定!
遇到《狂怒2》(Rage 2)游戏提示“wpcap.dll”文件丢失的问题,意味着您的系统中可能缺少或损坏了用于网络抓包和监控的WinPcap或其替代品Npcap的动态链接库文件。以下是解决此问题的步骤: 1. 安装或重新安装
WPCAP.dll失踪?修复手册,轻松搞定电脑故障!
在计算机使用过程中,不少用户可能会遇到wpcap.dll文件丢失的问题,这通常会导致依赖于该文件的应用程序无法正常运行,如Wireshark网络封包分析器等。wpcap.dll是WinPcap套件的一部分,该套件为Windows操作系
菜鸟也能学会!Windows 10系统还原轻松指南
有很多网友发现电脑系统出现问题后,知道可以通过重装系统来解决问题,但是如果不知道怎么重装系统或者是觉得重装太麻烦,还可以通过还原电脑系统解决,那么电脑系统还原怎么操作,今天小编就和大家说说还原电脑系统的具体操作方法。 更多
自动解压秘籍:Python帮你搞定各种压缩文件
压缩文件是我们在使用电脑时经常会遇到的。压缩文件并不只有一种压缩模式。平常我们都是通过安装一些解压缩软件来打开这些不同的压缩文件。今天我们来谈一谈,如何用Python解压几种常见类型的压缩文件。一、需求描述编写
让自动解压成为你解压Flash中心文件的秘密武器!
压缩文件是我们在使用电脑时经常会遇到的。压缩文件并不只有一种压缩模式。平常我们都是通过安装一些解压缩软件来打开这些不同的压缩文件。今天我们来谈一谈,如何用Python解压几种常见类型的压缩文件。一、需求描述编写
当Windows系统出问题时,如何借助DISM挂载映像进行修复,让电脑焕然一新?
如何使用DISM对Windows系统映像进行修复在前些天我更新电脑驱动的时候,更新程序报错了。我检查后发现是系统映像完整性的问题。在我解决完问题后,我决定把这个解决的过程记录下来,希望能帮到别人。 那么正文开始
发表评论