前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Delphi使用NativeXml处理XML(三)

Delphi使用NativeXml处理XML(三)

作者头像
Vaccae
发布2019-07-24 11:02:32
1.6K0
发布2019-07-24 11:02:32
举报
文章被收录于专栏:微卡智享

正文

4.1.16.TxmlNode类

  TXmlNode = class(TPersistent)   该TXmlNode代表在XML文件中的元素。每个TNativeXml拥有一个根(Root)元素。在根元素下面,子元素可以嵌套(没有限制有多深)。ElementType属性定义这个节点是什么类型的元素。 4.1.16.1.AttributeByName   property AttributeByName [const AName: UTF8String]: UTF8String;   AttributeByName返回的指定属性名称AName的属性的值。设置AttributeByName可以添加这个属性到属性列表,或取代现有的属性。 4.1.16.2.AttributeByNameWide   property AttributeByNameWide [const AName: UTF8String]: UnicodeString;   AttributeByName返回的指定属性名称AName的属性的UnicodeString类型值。设置AttributeByName可以添加这个属性到属性列表,或取代现有的属性。 4.1.16.3.AttributeCount   property AttributeCount: integer;   返回当前节点的属性数量。 4.1.16.4.AttributeName   property AttributeName [Index: integer]: UTF8String;   根据索引(Index)读属性的名字。注意,属性索引是从0开始的,索引(Index)值从0到AttributeCount – 1。 4.1.16.5.AttributePair   property AttributePair [Index: integer]: UTF8String;   根据索引(Index)读属性的名字与值,这个返回的UTF8String字符串中的名字(Name)与值(Value)用TAB符号(#9)分割。 注:实际上是用等号(=)分割的。这个值中的转义字符(escape)没有转换。 4.1.16.6.AttributeValue   property AttributeValue [Index: integer]: UTF8String;   根据索引(Index)读这个属性,返回UTF8String类型的属性值;写这个属性,则设置UTF8String类型的属性值。 4.1.16.7.AttributeValueAsInteger   property AttributeValueAsInteger [Index: integer]: integer;   根据索引(Index)读这个属性,返回Integer类型的属性值,如果这个值不能转换,返回0;写这个属性,则设置Integer类型的属性值。 4.1.16.8.AttributeValueAsUnicodeString   property AttributeValueAsUnicodeString [Index: integer]: UnicodeString;   根据索引(Index)读这个属性,返回UnicodeString类型的属性值;写这个属性,则设置UnicodeString类型的属性值。 4.1.16.9.AttributeValueDirect   property AttributeValueDirect [Index: integer]: UTF8String;   设置或获取这个原始属性值,可以回避转义字符转换(escape)函数。你不能在这个值中设置&和引用(quote)Ansi字符,或者XML不支持的字符。 注:这个值中的转义(escape)字符不会被转换。 4.1.16.10.BinaryEncoding   property BinaryEncoding: TBinaryEncodingType;   BinaryEncoding 属性值用于返回或设置父文档(Parent Document)的BinaryEncoding 属性值。 4.1.16.11.BinaryString   property BinaryString: RawByteString;   使用BinaryString可以读写Base64编码格式的节点值。如果是标准的文本信息,不使用这个方法,而是ValueAsString。 4.1.16.12.CascadedName   property CascadedName: UTF8String;   这个属性返回当前节点的名字及索引,并级联递归上层节点到根节点。各节点信息利用下划线(_)分割。 注:很奇怪,根节点竟然有一个父节点,而且那个节点没有写入文件。这个属性会返回那个奇怪节点的索引0。 4.1.16.13.Document   property Document: TNativeXml;   这是一个指向NativeXml格式文档的指针,它也许指向空(Nil)。 4.1.16.14.ElementType   property ElementType: TXmlElementType;   ElementType用于描述节点的元素类型。 4.1.16.15.FullPath   property FullPath: UTF8String;   Fullpath 返回从根节点(Root)到当前节点的完整路径,例如: /Root/SubNode1/SubNode2/ThisNode 4.1.16.16.Name   property Name: UTF8String;   Name属性用于读写节点的名字。这个完整的名字也许包括命名空间。(Namespace:Name) 4.1.16.17.NodeCount   property NodeCount: integer;   NodeCount 是这个节点的子节点数。可以利用它遍历子节点,例如: with MyNode do for i := 0 to NodeCount - 1 do with Nodes[i] do ..processing here 4.1.16.18.Nodes   property Nodes [Index: integer]: TXmlNode;   使用Nodes可以连接到当前XML节点中以Index指定的子节点。注意这个列表从0开始,Index有效值从0到NodeCount – 1。 4.1.16.19.Parent   property Parent: TXmlNode;   Parent 指向当前XML节点的父节点。 4.1.16.20.Tag   property Tag: integer;   Tag是一个Integer类型值,开发者可以随意使用它。 Tag 不保存到XML中。 Tag 常常用于表明一个GUI 元素 。 4.1.16.21.TotalNodeCount   property TotalNodeCount: integer;   TotalNodeCount 用于表示子节点总数,包括子节点的子节点。使用它返回XML 文档的节点总数:   Total := MyDoc.RootNodes.TotalNodeCount; 4.1.16.22.TreeDepth   property TreeDepth: integer;   读 TreeDepth属性可以得到当前XML 节点的嵌套层次。根节点(Root)的TreeDepth属性为0。 4.1.16.23.ValueAsBool   property ValueAsBool: boolean;   读取ValueAsBool 属性,可以返回布尔(boolean)类型的节点值,如果无法转换,引发一个异常。设置 ValueAsBool 将转换布尔类型为UTF8String类型并写入到节点值中。参照ValueAsBoolDef函数。 4.1.16.24.ValueAsDateTime   property ValueAsDateTime: TDateTime;   ValueAsDateTime 返回日期时间 (TDateTime) 类型的节点值,如果无法转换,引发一个异常。设置ValueAsDateTime 将转换TDateTime类型为UTF8String类型并写入到节点值中。参照 ValueAsDateTimeDef函数。 4.1.16.25.ValueAsFloat   property ValueAsFloat: double;   ValueAsFloat返回浮点(float) 类型的节点值,如果无法转换,引发一个异常。 设置ValueAsFloat将转换float类型为UTF8String类型并写入到节点值中。参照 ValueAsFloatDef函数。 4.1.16.26.ValueAsInt64   property ValueAsInt64: int64;   ValueAsIn64返回64位整数(int64) 类型的节点值,如果无法转换,引发一个异常。 设置ValueAsIn64将转换int64类型为UTF8String类型并写入到节点值中。参照 ValueAsInt64Def函数。 4.1.16.27.ValueAsInteger   property ValueAsInteger: integer;   ValueAsInteger返回整型(integer) 类型的节点值,如果无法转换,引发一个异常。 设置ValueAsInteger将转换integer类型为UTF8String类型并写入到节点值中。参照 ValueAsIntegerDef函数。 4.1.16.28.ValueAsString   property ValueAsString: UTF8String;   ValueAsString 返回没有转义字符(escape)版本的ValueDirect。 ValueDirect中所有的转义字符都必须被编码转换(例如"&" 转换为"&")。ValueAsString总是解码返回原始格式,使用ValueAsString设置节点的文本值,所有转义字符被编码转换。 4.1.16.29.ValueAsUnicodeString   property ValueAsUnicodeString: UnicodeString;   ValueAsUnicodeString 返回UnicodeString格式的没有转义字符(escape)版本的ValueDirect。设置这个节点的文本值,需要将所有转义字符编码转换。 4.1.16.30.ValueDirect   property ValueDirect: UTF8String;   ValueDirect是从流里面解析的原始文本值。如果有多行文本,将在ValueDirect中用CR符号分割。 4.1.16.31.WriteOnDefault   property WriteOnDefault: boolean;   WriteOnDefault属性值用于返回或设置父文档(Parent Document)的WriteOnDefault 属性值。 4.1.16.32.Assign   procedure Assign(Source: TPersistent); override;   使用 Assign连接另一个节点。这个方法从源节点复制所有属性和子节点到当前节点。你可以连接一个TNativeXml文档到这个节点,TNativeXml对象的RootNodeList属性将被复制。 4.1.16.33.AttributeAdd   procedure AttributeAdd(const AName: UTF8String; AValue: integer); overload;   使用这个方法增加一个整型(integer)属性到这个节点。 4.1.16.34.AttributeAdd   procedure AttributeAdd(const AName: UTF8String; const AValue: UTF8String); overload;   使用这个方法增加一个字符型(string)属性到这个节点,该值为AValue。 4.1.16.35.AttributeDelete   procedure AttributeDelete(Index: integer);   使用这个方法删除列表中Index指定的属性,Index必须大等于0,并且小于AttributeCount。使用范围外的Index是无效的。 4.1.16.36.AttributeExchange   procedure AttributeExchange(Index1: integer; Index2: integer);   交换Index1和Index2指定索引的属性。 4.1.16.37.AttributeIndexByname   function AttributeIndexByname(const AName: UTF8String): integer;   使用这个方法,返回指定AName名称的属性索引。 4.1.16.38.AttributesClear   procedure AttributesClear; virtual;   清除当前节点的所有属性。 4.1.16.39.BufferLength   function BufferLength: integer; virtual;   返回缓冲中数据长度,他将对xbeBinHex或xbeBase64格式解码,如果BinaryEncoding属性是xbeSixBits,这个函数不能使用。未编码的数据长度取决于从编码数据的长度。xbeBinHex是无意义的,(只有一半的长度),使用xbeBase64更困难(必须使用填充字符)。 4.1.16.40.BufferRead   procedure BufferRead(var Buffer{$IFDEF CLR}: TBytes{$ENDIF}; Count: Integer); virtual;   使用这个方法从节点的缓冲中读取长度为Count的二进制数据。 4.1.16.41.BufferWrite   procedure BufferWrite(const Buffer{$IFDEF CLR}: TBytes{$ENDIF}; Count: Integer); virtual;   使用这个方法将长度为Count的二进制数据写入节点缓冲区。在最终的XML文档中,这个数据使用BinHex或Base64编码的文本。注意NativeXml仅支持最大2Gb数据文件,不能使用巨大的文件。这个二进制编码方法(转换二进制数据到文本)能选择BinaryEncoding属性,xbeBase64是最有效的,但是稍慢。总是使用同一种编码读写它。 4.1.16.42.Clear   procedure Clear; virtual;   清除当前XML节点的所有子节点和属性,包括名字和值。这个节点没有被删除,可以调用Delete代替他。 4.1.16.43.Create   constructor Create(ADocument: TNativeXml); virtual;   创建一个新对象,ADocument 必须是TNativeXml,他将获得这个新的节点。 4.1.16.44.CreateName   constructor CreateName(ADocument: TNativeXml; const AName: UTF8String); virtual;   创建一个新的节点对象,并设置名字为AName,ADocument必须为TNativeXml类型,并会得到这个新的节点。 4.1.16.45.CreateNameValue   constructor CreateNameValue(ADocument: TNativeXml; const AName: UTF8String; const AValue: UTF8String); virtual;   创建一个新的节点对象,并设置名字为AName,并且值为UTF8String类型的AValue。ADocument必须为TNativeXml类型,并会得到这个新的节点。 4.1.16.46.CreateType   constructor CreateType(ADocument: TNativeXml; AType: TXmlElementType); virtual;   创建一个新的节点对象,并且XML元素类型(TXmlElementType)为AType,ADocument必须为TNativeXml类型,并会得到这个新的节点。 4.1.16.47.Delete   procedure Delete; virtual;   调用Delete 从父节点列表中完整的删除这个节点。这个调用仅在这个节点有父节点的情况有效。根节点调用它无效。 4.1.16.48.DeleteEmptyNodes   procedure DeleteEmptyNodes;   删除所有空的节点(没有子节点、属性、值)。这个方法递归调用。 4.1.16.49.Destroy   destructor Destroy; override;   销毁当前节点对象。自动释放子节点。不要直接调用这个方法。当TNativeXml.Free时,文档中的所有TXmlNodes对象将递归调用这个方法。 4.1.16.50.FindNode   function FindNode(const NodeName: UTF8String): TXmlNode;   找到第一个名字为NodeName的节点,与NodeByName函数相反,这个函数将搜索完整的子节点树,使用DepthFirst方法。它也可以搜索全路径,例如   FoundNode := MyNode.FindNode('/Root/SubNode1/SubNode2/ThisNode'); 注:已经无法找到DepthFirst定义了,虽然在注释里面还能找到他的身影。当NodeName得第一个字符是“/”时,会按照全路径方式查找。 4.1.16.51.FindNodes   procedure FindNodes(const NodeName: UTF8String; const AList: TList);   查找名字为NodeName的所有节点,与NodeByName函数相反,这个函数将搜索完整的子节点树。对于你使用的AList列表参数,你不需要初始化他的Items。 4.1.16.52.FromAnsiString   function FromAnsiString(const s: AnsiString): UTF8String;   使用FromAnsiString转换一个标准ANSI字符串到UTF8String格式,比如节点的名字、值、属性。在TNativeXml中ANSI字符被编码为UTF8。 4.1.16.53.FromUnicodeString   function FromUnicodeString(const W: UnicodeString): UTF8String;   使用FromUnicodeString转换UnicodeString格式字符串到UTF8String 格式。 4.1.16.54.HasAttribute   function HasAttribute(const AName: UTF8String): boolean; virtual;   使用HasAttribute确定名称为AName的节点是否有属性。 4.1.16.55.IndexInParent   function IndexInParent: integer;   这个函数返回这个节点在父节点中的索引。如果父节点不存在,这个函数返回-1。 4.1.16.56.IsClear   function IsClear: boolean; virtual;   如果这个节点没有子节点、属性,并且名字和值为空,返回True。 4.1.16.57.IsEmpty   function IsEmpty: boolean; virtual;   如果这个节点没有子节点、属性,并且值为空,返回True。 4.1.16.58.IsEqualTo   function IsEqualTo(ANode: TXmlNode; Options: TXmlCompareOptions; MismatchNodes: TList): boolean; 4.1.16.59.NodeAdd   function NodeAdd(ANode: TXmlNode): integer; virtual;   增加ANode节点为当前节点子列表的一个新的子元素,这个节点将被增加到NodeCount这个位置,并且这个数值被返回。 4.1.16.60.NodeByAttributeValue   function NodeByAttributeValue(const NodeName: UTF8String; const AttribName: UTF8String; const AttribValue: UTF8String; ShouldRecurse: boolean): TXmlNode;   这个函数返回子节点中第一个节点名等于NodeName,并且名为AttribName属性的值为AttribValue的节点。如果ShouldRecurse为True(缺省),则函数自身递归。 4.1.16.61.NodeByElementType   function NodeByElementType(ElementType: TXmlElementType): TXmlNode;   返回第一个元素类型为Elementype的子节点,如果不存在则返回空(nil)。 4.1.16.62.NodeByName   function NodeByName(const AName: UTF8String): TXmlNode; virtual;   返回第一个名字为AName的子节点,如果没找到,则返回空(nil)。 4.1.16.63.NodeDelete   procedure NodeDelete(Index: integer); virtual;   删除索引为Index的子节点。这个子节点将被释放。 4.1.16.64.NodeExchange   procedure NodeExchange(Index1: integer; Index2: integer);   交换索引为Index1和Index2的子节点。 4.1.16.65.NodeExtract   function NodeExtract(ANode: TXmlNode): TXmlNode; virtual;   从子节点列表中提取ANode。该节点将不再出现在子节点列表中,因此应用程序将不再释放ANode。 4.1.16.66.NodeFindOrCreate   function NodeFindOrCreate(const AName: UTF8String): TXmlNode; virtual;   这个函数返回第一个名字是AName的节点指针。如果此节点没有找到,将创建一个新节点,并返回其指针。 4.1.16.67.NodeIndexByName   function NodeIndexByName(const AName: UTF8String): integer; virtual;   查找第一个名字是AName的节点索引。 4.1.16.68.NodeIndexByNameFrom   function NodeIndexByNameFrom(const AName: UTF8String; AFrom: integer): integer; virtual;   在索引为AFrom的后面查找名字为AName的第一个节点索引。此功能可在所有节点中用循环来检索特定名称,而无需使用辅助清单。另见NodesByName。 4.1.16.69.NodeIndexOf   function NodeIndexOf(ANode: TXmlNode): integer;   调用NodeIndexOf得到ANode在节点数组中的索引。数组中的第一个节点的索引为0,第二个节点索引为1,依此类推。如果一个节点不在列表中,NodeIndexOf返回-1。 4.1.16.70.NodeInsert   procedure NodeInsert(Index: integer; ANode: TXmlNode); virtual;   插入节点ANode到节点列表,并且设置索引为Index。 4.1.16.71.NodeNew   function NodeNew(const AName: UTF8String): TXmlNode; virtual;   创建一个名字为AName的新节点,并加入到子节点列表中,然后返回这个指针。 4.1.16.72.NodeNewAtIndex   function NodeNewAtIndex(Index: integer; const AName: UTF8String): TXmlNode; virtual;   创建一个名字为AName的新节点,并加入到子节点列表中索引为Index的位置上,然后返回这个指针。 4.1.16.73.NodeRemove   function NodeRemove(ANode: TXmlNode): integer;   若要从节点数组移除一个特定的节点时,调用NodeRemove,他的索引是未知的。返回的值是它被删除前在节点数组中的索引。一个节点被删除后,所有的节点都遵循它在索引位置移动,并且NodeCount会减一。 4.1.16.74.NodesByName   procedure NodesByName(const AName: UTF8String; const AList: TList);   使用此过程来获取名称为AName的所有节点。这些节点的指针被添加到列表AList中。调用这个过程之前AList必须初始化。您不需要清除这个列表。 4.1.16.75.NodesClear   procedure NodesClear; virtual;   清除(并且释放)完整的子节点列表。 4.1.16.76.ReadAttributeBool   function ReadAttributeBool(const AName: UTF8String; ADefault: boolean): boolean; virtual;   查找名字为AName的属性,并且转换值为布尔(boolean)类型,如果属性没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.77.ReadAttributeDateTime   function ReadAttributeDateTime(const AName: UTF8String; ADefault: TDateTime): TDateTime; virtual; 4.1.16.78.ReadAttributeFloat   function ReadAttributeFloat(const AName: UTF8String; ADefault: double): double;   查找名字为AName的属性,并且转换值为双精度浮点(double)类型,如果属性没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.79.ReadAttributeInt64   function ReadAttributeInt64(const AName: UTF8String; ADefault: int64): int64; virtual;   查找名字为AName的属性,并且转换值为64位整数(int64)类型,如果属性没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.80.ReadAttributeInteger   function ReadAttributeInteger(const AName: UTF8String; ADefault: integer): integer; virtual;   查找名字为AName的属性,并且转换值为整数(integer)类型,如果属性没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.81.ReadAttributeString   function ReadAttributeString(const AName: UTF8String; const ADefault: UTF8String): UTF8String; virtual; 4.1.16.82.ReadBool   function ReadBool(const AName: UTF8String; ADefault: boolean): boolean; virtual;   查找名字为AName的子节点,并且转换值为布尔(boolean)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.83.ReadBrush   procedure ReadBrush(const AName: UTF8String; ABrush: TBrush); virtual;   从名字为AName的子节点中读取Color和Style信息到TBrush类型的ABrush中。 4.1.16.84.ReadColor   function ReadColor(const AName: UTF8String; ADefault: TColor): TColor; virtual;   从名字为AName的子节点中读取值,并转换为颜色(TColor)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.85.ReadDateTime   function ReadDateTime(const AName: UTF8String; ADefault: TDateTime): TDateTime; virtual;   从名字为AName的子节点中读取值,并转换为日期时间(TDateTime)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.86.ReadFloat   function ReadFloat(const AName: UTF8String; ADefault: double): double; virtual;   从名字为AName的子节点中读取值,并转换为双精度浮点(double)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.87.ReadFont   procedure ReadFont(const AName: UTF8String; AFont: TFont); virtual;   从名字为AName的子节点中读取Color、Size和Style信息到TFont类型的AFont中。 4.1.16.88.ReadInt64   function ReadInt64(const AName: UTF8String; ADefault: int64): int64; virtual;   从名字为AName的子节点中读取并且转换值为64位整数(int64)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.89.ReadInteger   function ReadInteger(const AName: UTF8String; ADefault: integer): integer; virtual;   从名字为AName的子节点中读取并且转换值为整数(integer)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.90.ReadPen   procedure ReadPen(const AName: UTF8String; APen: TPen); virtual;   从名字为AName的子节点中读取Color、Mode和Style信息到TPen类型的APen中。 4.1.16.91.ReadString   function ReadString(const AName: UTF8String; const ADefault: UTF8String): UTF8String; virtual;   从名字为AName的子节点中读取并且转换值为UTF8字符串(UTF8String)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.92.ReadUnicodeString   function ReadUnicodeString(const AName: UTF8String; const ADefault: UnicodeString): UnicodeString; virtual;   从名字为AName的子节点中读取并且转换值为Unicode字符串(UnicodeString)类型,如果子节点没有找到,或者不能转换,返回缺省值ADefault。 4.1.16.93.SortChildNodes   procedure SortChildNodes(Compare: CompareFunction; Info: TPointer);   排序此节点的子节点。提供自定义的节点比较函数Compare,或者在父文档附加一个事件处理程序OnNodeCompare,以提供自定义排序。如果没有给出比较函数(nil),OnNodeCompare也没有定义,SortChildNodes只会按名称排序(升序,不区分大小写)子节点。指针参数的信息可以被用来传递任何自定义信息的比较功能。信息的默认值是空(nil)。 4.1.16.94.ToUnicodeString   function ToUnicodeString(const s: UTF8String): UnicodeString;   使用ToUnicodeString转换UTF8String格式字符串到UnicodeString 格式。 4.1.16.95.ValueAsBoolDef   function ValueAsBoolDef(ADefault: boolean): boolean; virtual;   转换节点值为布尔(boolean)类型,如果不能转换,或者值没有找到,返回缺省值ADefault。 4.1.16.96.ValueAsDateTimeDef   function ValueAsDateTimeDef(ADefault: TDateTime): TDateTime; virtual;   转换节点值为日期时间(TDateTime)类型,如果不能转换,或者值没有找到,返回缺省值ADefault。 4.1.16.97.ValueAsFloatDef   function ValueAsFloatDef(ADefault: double): double; virtual;   转换节点值为双精度浮点(double)类型,如果不能转换,或者值没有找到,返回缺省值ADefault。 4.1.16.98.ValueAsInt64Def   function ValueAsInt64Def(ADefault: int64): int64; virtual;   转换节点值为64位整数(int64)类型,如果不能转换,或者值没有找到,返回缺省值ADefault。 4.1.16.99.ValueAsIntegerDef   function ValueAsIntegerDef(ADefault: integer): integer; virtual;   转换节点值为整数(integer)类型,如果不能转换,或者值没有找到,返回缺省值ADefault。 4.1.16.100.WriteAttributeBool   procedure WriteAttributeBool(const AName: UTF8String; AValue: boolean; ADefault: boolean); virtual;   如果名称为AName的属性存在,那么将其值设置为布尔值AValue。如果它不存在,则创建一个名字为AName的新属性,并转换AValue为 “True”或“False”的布尔值。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加属性。 4.1.16.101.WriteAttributeDateTime   procedure WriteAttributeDateTime(const AName: UTF8string; AValue: TDateTime; ADefault: TDateTime); virtual; 4.1.16.102.WriteAttributeFloat   procedure WriteAttributeFloat(const AName: UTF8String; AValue: double; ADefault: double); virtual; 4.1.16.103.WriteAttributeInt64   procedure WriteAttributeInt64(const AName: UTF8String; const AValue: int64; ADefault: int64); virtual; 4.1.16.104.WriteAttributeInteger   procedure WriteAttributeInteger(const AName: UTF8String; AValue: integer; ADefault: integer); virtual;   如果名称为AName的属性存在,那么将其值设置为整数AValue。如果它不存在,则创建一个名字为AName的新属性,并转换AValue为字符串。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加属性。 4.1.16.105.WriteAttributeString   procedure WriteAttributeString(const AName: UTF8String; const AValue: UTF8String; const ADefault: UTF8String); virtual;   如果名称为AName的属性存在,那么将其值设置为UTF8字符串AValue。如果它不存在,则创建一个名字为AName的新属性,并写入AValue为UTF8字符串。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加属性。 4.1.16.106.WriteBool   procedure WriteBool(const AName: UTF8String; AValue: boolean; ADefault: boolean); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为布尔(boolean)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.16.107.WriteBrush   procedure WriteBrush(const AName: UTF8String; ABrush: TBrush); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为画刷(TBrush)类型AValue,包括Color和Style。如果名字为AName的子节点不存在,创建它。 4.1.16.108.WriteColor   procedure WriteColor(const AName: UTF8String; AValue: TColor; ADefault: TColor); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为颜色(TColor)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.16.109.WriteDateTime   procedure WriteDateTime(const AName: UTF8String; AValue: TDateTime; ADefault: TDateTime); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为日期时间(TDateTime)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。这个XML格式依照W3C的日期时间说明。 4.1.16.110.WriteFloat   procedure WriteFloat(const AName: UTF8String; AValue: double; ADefault: double); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为双精度浮点(double)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.16.111.WriteFont   procedure WriteFont(const AName: UTF8String; AFont: TFont); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为字体(TFont)类型AFont,包括Color、Size和Style。如果名字为AName的子节点不存在,创建它。 4.1.16.112.WriteHex   procedure WriteHex(const AName: UTF8String; AValue: integer; Digits: integer; ADefault: integer); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为16进制 (hexadecimal)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.16.113.WriteInt64   procedure WriteInt64(const AName: UTF8String; AValue: int64; ADefault: int64); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为16位整数(int64)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.16.114.WriteInteger   procedure WriteInteger(const AName: UTF8String; AValue: integer; ADefault: integer); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为整数(integer)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.16.115.WritePen   procedure WritePen(const AName: UTF8String; APen: TPen); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为画笔(TPen)类型APen,包括Color、Mode和Style。如果名字为AName的子节点不存在,创建它。 4.1.16.116.WriteString   procedure WriteString(const AName: UTF8String; const AValue: UTF8String; const ADefault: UTF8String); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为UTF8 字符串(UTF8String)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.16.117.WriteToString   function WriteToString: UTF8String; virtual;   调用WriteToString可以存储XML节点到UTF8 字符串(UTF8String)。该方法可用于存储单个节点,而不是完整的XML文档的。 4.1.16.118.WriteUnicodeString   procedure WriteUnicodeString(const AName: UTF8String; const AValue: UnicodeString; const ADefault: UnicodeString); virtual;   增加或替换名字为AName的子节点,增加或者设置它的值为Unicode字符串(UnicodeString)类型AValue。如果ADefault = AValue,并且WriteOnDefault = FALSE时,不添加子节点。 4.1.17.TXmlNodeList

  TXmlNodeList = class(TList)   TXmlNodeList是一个继承自TList的工具。   例子如下: procedure FindAllZips(ANode: TXmlNode); var i: integer; AList: TXmlNodeList; begin AList := TXmlNodeList.Create; try // Get a list of all nodes named 'ZIP' ANode.NodesByName('ZIP', AList); for i := 0 to AList.Count - 1 do // Write the value of the node to output. Since AList[i] will be // of type TXmlNode, we can directly access the Value property. WriteLn(AList[i].Value); finally AList.Free; end; end; 4.1.17.1.Items   property Items [Index: Integer]: TXmlNode; 4.1.17.2.ByAttribute   function ByAttribute(const AName: UTF8String; const AValue: UTF8String): TXmlNode;   返回属性名称为AName,并且属性值为AValue的第一个节点。


-END-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档