Delphi使用NativeXml处理XML(三)

前言

我们接着上文的《Delphi使用NativeXml处理XML(二)》继续进行。

正文

 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-

长按下方二维码关注微卡智享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vaccae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值