张志峰的博客

水滴石川,积少成多。

导航

随笔分类 -  Delphi XML

摘要:procedure ExPortNodeQuantifyComponent1(aCDS: TClientDataSet; aCurrNode: TXMLNode); var mStream: TMemoryStream; I: Integer; vNode: TcxTreeListNode; Nat 阅读全文

posted @ 2016-04-22 10:37 ╰★张志峰★╮ 阅读(603) 评论(0) 推荐(0)

摘要:Node1.WriteString(HomologousFieldItem.cXMLNodeCode, AnsiToUtf8(FieldByName(HomologousFieldItem.cMappingFieldCode).AsString));还有一种,就是定义成WideString,保存成这种类型的数据, 然后用 Node1.WriteWideString()的方法,也可以避免。 阅读全文

posted @ 2013-08-29 14:56 ╰★张志峰★╮ 阅读(740) 评论(0) 推荐(0)

摘要:NativeXml用法攻略NativeXml可以在官网上下载,下载后将文件夹放在指定地方,打开DELPHI在其环境变量中引用NativeXml路径,然后在程序中引用NativeXml单元,我们就可以使用NativeXml了。NativeXml的方法属性:ANativeXml := TNativeXml.Create(Self);//创建ANativeXml.XmlFormat := xfReadable; //格式ANativeXml.EncodingString := 'UTF-8';//编码ANativeXml.ExternalEncoding := seUTF8... 阅读全文

posted @ 2013-08-22 19:53 ╰★张志峰★╮ 阅读(837) 评论(0) 推荐(0)

摘要:delphi笔记之nativeXml使用 CreateName 建立可直接指定根节点的名称varXmlDoc: TnativeXml;Node:TxmlNode;BeginXmlDoc := TNativeXml.CreateName('Data');//创建根节点的语法XmlDoc.XmlFormat := xfReadable;添加节点有以下几种方法:Node:=xmlDoc.Root.NodeNew(‘BasicDataNo’);Node.value:=’1’;XmlDoc.Root.NodeNew(‘name’).value:=’sam’;xmlDoc.Root.Wri 阅读全文

posted @ 2013-08-22 19:51 ╰★张志峰★╮ 阅读(2907) 评论(0) 推荐(0)

摘要:NativeXml可以在官网上下载,下载后将文件夹放在指定地方,打开DELPHI在其环境变量中引用NativeXml路径,然后在程序中引用NativeXml单元,我们就可以使用NativeXml了。NativeXml的方法属性:ANativeXml := TNativeXml.Create(Self);//创建ANativeXml.XmlFormat := xfReadable; //格式ANativeXml.EncodingString := 'UTF-8';//编码ANativeXml.ExternalEncoding := seUTF8;ANativeXml.L... 阅读全文

posted @ 2013-08-16 17:52 ╰★张志峰★╮ 阅读(1614) 评论(0) 推荐(0)

摘要:NativeXml默认的字符类型为Utf8String,有时在读取中文时还是会出现乱码问题,在329版本中提供一种类型转换函数sdUtf8ToWide(),我们可以这样sdUtf8ToWide(AXmlNode.Value)进行类型转换,对之前的版本中XML节点有ValueWide属性可正确取得中文,在329版本中这个属性可能变成了ValueUnicode,但效果并不是很理想。 阅读全文

posted @ 2013-08-16 17:51 ╰★张志峰★╮ 阅读(1593) 评论(0) 推荐(0)

摘要:一般XML的编码格式设置成UTF8比较通用,下面演示使用UTF8编码方式存储和处理包含中文的XML字符串(文件)。1.设置启用内置的widestring支持NativeXml内部使用ANSI string和UTF8编码的string两种字符串类型。如果要让NativeXml能够解析widestring字符串的话,直接将TNativeXml的Utf8Encoded属性设置为True。如下:FXmlDoc:= TNativeXml.Create;FXmlDoc.Utf8Encoded:= True;这样NativeXml内部会自动对Widestring和utf8做转换。此处需要注意的是,如果执行F 阅读全文

posted @ 2013-08-16 17:37 ╰★张志峰★╮ 阅读(2526) 评论(0) 推荐(0)

摘要:我遇到 NativeXML 在它的一个节点的属性上面写入属性,但是当读出的值中包含汉字的时候出现了乱码。检查代码如下NativeXml := TNativeXml.Create;try NativeXml.EncodingString := 'GB2312';// 'UTF-8'; NativeXml.Utf8Convert := True; NativeXml.BinaryEncoding := xbeBinHex; NativeXml.Clear; NativeXml.LoadFromFile(strFilePath); RootNode := Native 阅读全文

posted @ 2013-08-16 17:28 ╰★张志峰★╮ 阅读(478) 评论(0) 推荐(1)

摘要:1.创建XML文件var Doc: TNativeXml;//声明上下文对象var filepath:string;//文件路径DOC:=TNativeXml.CreateName('root');Doc.EncodingString:='gb2312';DOC.XmlFormat:=xfReadable;DOC.SaveToFile(filepath);2.创建新节点//先在根节点下创建一个节点名为userInfo的节点,然后给该节点写一个属性为loginname,属性值为ceshiyong DOC.Root.NodeNew('userInfo' 阅读全文

posted @ 2013-08-16 15:16 ╰★张志峰★╮ 阅读(481) 评论(0) 推荐(0)

摘要:Delphi使用NativeXml访问XML文件1.创建XML文件var Doc: TNativeXml;//声明上下文对象var filepath:string;//文件路径DOC:=TNativeXml.CreateName('root');Doc.EncodingString:='gb2312';DOC.XmlFormat:=xfReadable;DOC.SaveToFile(filepath);2.创建新节点//先在根节点下创建一个节点名为userInfo的节点,然后给该节点写一个属性为loginname,属性值为ceshiyong DOC.Root.N 阅读全文

posted @ 2013-08-13 10:05 ╰★张志峰★╮ 阅读(1323) 评论(0) 推荐(0)

摘要:Delphi中使用TXMLDocument控件应注意的问题delphiconstructorxmlclass今天写了一个类,其中用到了TXMLDocument控件。这个控件我是要动态生成的。但是却遇到了非常奇怪的问题,下面分享一下procedure TMainForm.Button1Click(Sender:TObject);Var XML:TXMLDocument; I:Integer;begin XML:=TXMLDocument.Create(nil); XML.LoadFromFile(ExtractFilePath(Application.ExeName)+'demo.xml 阅读全文

posted @ 2013-08-06 15:29 ╰★张志峰★╮ 阅读(1501) 评论(0) 推荐(0)

摘要:Delphi中对XML文件的解析做的很好,比直接使用MS的MSXML2_TLB中的接口要方便很多,现称述于下面。在讲之前先给出一个XML实例,在讲某些部分是要结合实例比较容易理解。123456789Hello! I am yaya! 1011TXMLDocument控件提供了我们两种常用做法:一、直接用这个类封装的属性和方法来读写XML文件,我把它称为自己解析法;二、用控件提供的XML Data Binding Wizard来创建一个适合用户自己的接口单元,然后按照这个接口单元提供的许多接口来实现对同类XML文件的读写,十分方便,但有局限性,我把它称为控件解析法。我重点讲第一种使用方法。一、自 阅读全文

posted @ 2013-08-06 15:28 ╰★张志峰★╮ 阅读(563) 评论(0) 推荐(0)