Delphi操作XML:TXMLNode类(二)
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这个位置,并且这个数值被返回。
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这个位置,并且这个数值被返回。