• Delphi操作XML(七)


    符号引用(Symbol Reference)

    4.1.
    (Classes)

    4.1.1.TComponentAccess


      TComponentAccess =
    class(TComponent)

    4.1.1.1.ComponentState

      property ComponentState;

    4.1.1.2.SetComponentState

      procedure
    SetComponentState(const AState: TComponentState);

    4.1.2.TNativeXml


      TNativeXml =
    class(TPersistent)

      TNativeXmlXML文件的载体。创建一个TNativeXml,然后使用方法LoadFromFileLoadFromStreamReadFromString加载XML文档到内存中。或者从头开始使用Root.NodeNew添加节点,并最终SaveToFileSaveToStream保存结果为一个XML文档。用属性Xmlformat = xfReadable确保缩进(易读)输出。


    4.1.2.1.AbortParsing

      property AbortParsing:
    boolean;

      如果您使用一个SAX-like方式的OnNodeNewOnNodeLoaded事件,并要中止解析过程,设置AbortParsingTrue。例如:

    procedure MyForm.NativeXmlNodeLoaded(Sender: TObject; Node: TXmlNode);

     begin

       if (Node.Name = 'LastNode') and (Sender is TNativeXml) then

         TNativeXml(Sender).AbortParsing := True;

     end;

    4.1.2.2.BinaryEncoding

      property BinaryEncoding:
    TBinaryEncodingType;

      当调用TXmlNode.BufferReadTXmlNode.BufferWrite时,将使用什么样的二进制编码。默认值是xbeBase64

    4.1.2.3.CommentString

      property CommentString:
    UTF8String;

      可以通过此属性访问上方的根元素<!--{comment} - >的一个注释字符串。关联此说明(comment)属性,将它添加到XML文档。使用属性RootNodeList添加/插入/提取多条说明。

    4.1.2.4.DropCommentsOnParse

      property DropCommentsOnParse:
    boolean;

      设置DropCommentsOnParse,如果你对在你的对象模型数据中任何的说明节点不感兴趣,解析过程中遇到的所有的说明将被跳过,而不增加这个节点,ElementType = xeComment(这是默认值)。请注意当您设定这个选项,以后你不能在原来的位置重建一个XML文件的说明。

    4.1.2.5.EncodingString

      property EncodingString:
    UTF8String;

      编码字符串(例如UTF-8”UTF-16”)。这种编码的字符串存储在头部。

      例子 1

      为了得到这个头:

      <?xml
    version="1.0" encoding="UTF-16" ?>

      输入以下代码:

      MyXmlDocument.EncodingString
    := 'UTF-16';

      当读取一个文件,EncodingString将包含编码。

    4.1.2.6.EntityByName

      property EntityByName
    [AName: UTF8String]: UTF8String;

      返回指定名称命名实体的值。这些实体值从被分析的Doctype声明中获得(如果有的话)。

    4.1.2.7.ExternalEncoding

      property ExternalEncoding:
    TStringEncodingType;

      ExternalEncoding定义XML文件的保存格式。设置ExternalEncodingse8bit保存为纯文本文件,以seUtf8保存为UTF8的文件(以字节顺序标记#EF BB FF),以seUTF16LE保存为Unicode(字节顺序标记#FF FE)。当读取一个XML文件时,ExternalEncoding值将被设置按字节顺序标记和/或找到的编码声明。

    4.1.2.8.FloatAllowScientific

      property
    FloatAllowScientific: boolean;

      当浮点值转换成字符串(如在WriteFloat),NativeXml将允许在某些情况下输出科学记数法,只有在FloatAllowScientific值为True(默认)时,返回结果缩短。

    4.1.2.9.FloatSignificantDigits

      property FloatSignificantDigits:
    integer;

      当浮点值转换成字符串(如在WriteFloat),NativeXml将利用这属性表示有效位数。默认值是cDefaultFloatSignificantDigits
    = 6


    4.1.2.10.IndentString

      property IndentString:
    UTF8String;

      IndentString是缩进使用的字符串。默认情况下,它是两个空格:'  '。如果你需要其他格式,可以设置IndentString为其他的东西,或将其设置为空字符串,以避免缩进。

    4.1.2.11.OnNodeCompare

      property OnNodeCompare:
    TXmlNodeCompareEvent;

      此事件被一个节点的SortChildNodes方法被调用,并没有直接比较的方法提供。如果你要使用对象事件的节点为基础的比较方法,实现此事件。

    4.1.2.12.OnNodeLoaded

      property OnNodeLoaded:
    TXmlNodeEvent;

      解析器解析节点已完成时调用此事件,并在内存中创建的完整内容。

    4.1.2.13.OnNodeNew

      property OnNodeNew:
    TXmlNodeEvent;

      当解析器遇到一个新的节点此事件被调用。

    4.1.2.14.OnProgress

      property OnProgress:
    TXmlProgressEvent;

      加载和保存XML文档期间调用OnProgressSize参数包含流中的位置。此事件可以被用来实现在装载和保存的进度指示器。该事件在每一个被读出或写入节点后调用。

    4.1.2.15.OnUnicodeLoss

      property OnUnicodeLoss:
    TNotifyEvent;

      从Unicode流或文件读取时,如果有一个Unicode转换丢失警告,调用此事件。

    4.1.2.16.ParserWarnings

      property ParserWarnings:
    boolean;

      默认情况下ParserWarningsTrue。如果为TrueXML文档不正确时,解析器将抛出一个例外。如果为False,解析器将试图忽略非关键的警告,如基于XML的某些文件SOAP类型消息。

    4.1.2.17.Root

      property Root: TXmlNode;

      根(Root)是在XML文件最上面的元素。通过根阅读任何子元素。当创建一个新的XML文档,您可以通过CreateName创建并自动包含根节点。

    4.1.2.18.RootNodeList

      property RootNodeList:
    TXmlNode;

      RootNodeList可用于直接访问XML文档的根的节点列表。通常,这个列表是由一个声明节点跟着一个标准的根节点。你可以使用这个属性来添加或删除注释(comments),样式(stylesheets)DTD的等

    4.1.2.19.StyleSheetNode

      property StyleSheetNode:
    TXmlNode;

      从此XML文件获取样式节点使用。如果节点尚不存在,它将被创建(因此,如果你使用这个属性,并且不设置任何属性,一个空的样式节点将产生)。

    4.1.2.20.UseFullNodes

      property UseFullNodes:
    boolean;

      保存XML文档之前,设置UseFullNodesTrue,以确保所有节点是由<Node>
    ...</Node>
    为代表,而不是短版<Node/>UseFullNodes默认为False

    4.1.2.21.UseLocalBias

      property UseLocalBias:
    Boolean;

      如果你在读写datetime值时,要考虑当地时差,将UseLocalBias设置为TrueUseLocalBias是默认为False

    4.1.2.22.Utf8Encoded

      property Utf8Encoded:
    boolean;

      此属性是为向后兼容的:NativeXml所有字符串都是UTF8Strings,内部编码始终是UTF8的编码。

    4.1.2.23.VersionString

      property VersionString:
    UTF8String;

      读完文档后,这个属性包含XML版本(通常是“1.0”)。

    4.1.2.24.WriteOnDefault

      property WriteOnDefault:
    boolean;

      如果你不想写默认值到XML文档,设置WriteOnDefaultFalse。此选项可避免产生巨大的冗余信息的文件,并会加快写入。

    4.1.2.25.XmlFormat

      property XmlFormat:
    TXmlFormatType;

      默认情况下XmlFormat设置为xfCompact。此设置是符合该规范,并NativeXml只会在XML文件中产生#$0A这个Ansi符号。通过设置XmlFormatxfReadable,你可以方便地生成易读的XML文件,其中包含每个元素缩进和回车。

    4.1.2.26.Assign

      procedure Assign(Source:
    TPersistent); override;

      当关联到一个TnativeXml的源对象,将会从源对象复制它的所有数据。

    4.1.2.27.Clear

      procedure Clear; virtual;

      调用Clear从对象中删除所有数据,并恢复所有默认值。

    4.1.2.28.Create

      constructor Create;
    virtual;

      创建一个新的NativeXml文档,可以用来读取或写入XML文件。一个文档被创建,必须在后期使用Free释放。

      例子 1

     var

       ADoc: TNativeXml;

     begin

       ADoc := TNativeXml.Create;

       try

         ADoc.LoadFromFile('c:\temp\myxml.xml');

         {do something with the document here}

       finally

         ADoc.Free;

       end;

     end;

    4.1.2.29.CreateName

      constructor
    CreateName(const ARootName: UTF8String); virtual;

      使用CreateName创建一个新的XML文件,将自动包含一个名为ARootName根元素。

    4.1.2.30.Destroy

      destructor Destroy;
    override;

      Destroy将释放在TNativeXml对象中的所有数据。包括根节点下的所有子节点。不要调用Destroy,直接的调用Free代替。

    4.1.2.31.IsEmpty

      function IsEmpty: boolean;
    virtual;

      如果根是被清除的,换句话说,根本不包含任何价值,没有名字,没有子节点,并没有属性,函数IsEmpty返回True

    4.1.2.32.LoadFromFile

      procedure
    LoadFromFile(const AFileName: string); virtual;

      调用LoadFromFile过程加载一个指定文件的名XML文件。请参阅Create的例子。当它遇到不正确的XML时,该LoadFromFile过程将引发EFilerError异常。

    4.1.2.33.LoadFromStream

      procedure
    LoadFromStream(Stream: TStream); virtual;

      从流对象TStream加载XML文档。当它遇到不正确的XML,该LoadFromStream过程将引发EFilerError异常。该方法可用于任何TStream的继承类。另见LoadFromFileReadFromString

    4.1.2.34.ReadFromString

      procedure
    ReadFromString(const AValue: UTF8String); virtual;

      调用ReadFromString过程从UTF8String类型的Avalue装载XML文档。当它遇到不正确的XML,该ReadFromString过程将引发EFilerError异常。

    4.1.2.35.ResolveEntityReferences

      procedure
    ResolveEntityReferences;

      当文档装载之后,调用ResolveEntityReferences,以解决任何当前实体引用(&Entity;)。当在DTD中找到一个实体,它将取代实体引用。当一个实体包含XML标记,它会被解析,并成为文档树的一部分。由于调用ResolveEntityReferences增加了一些额外的开销,这不是自动完成的。如果你想要做的实体更换,一个很好的时机是LoadFromFile之后调用ResolveEntityReferences

    4.1.2.36.SaveToFile

      procedure SaveToFile(const
    AFileName: string); virtual;

      调用SaveToFile保存XML文档到一个指定文件名的文件。如果文件存在,它将不经警告覆盖。如果该文件不能被创建,就会产生一个标准I/O异常。如果你希望文件包含XML的缩进,设置XmlFormatxfReadable,使更多的人易读。这不是默认的,也没有使用XML规范。

      在保存之前,可以通过设置下面两个属性,保存为特殊的编码类型:

      ExternalEncoding

      EncodingString

      ExternalEncodingse8bit(纯ASCII码),seUtf8UTF-8),seUtf16LEUnicode)或seUtf16BE(大编码的Unicode)。

      不要忘记,还要设置EncodingString(如“UTF-8”“UTF-16”)这与你的ExternalEncoding匹配。

    4.1.2.37.SaveToStream

      procedure
    SaveToStream(Stream: TStream); virtual;

      调用SaveToStream保存XML文档到流。流可以是任何TStream的后裔。如果你想流包含XML的缩进,使更多的人易读,设置XmlFormatxfReadable。这不是默认的,也没有使用XML规范。请参阅SaveToFile中有关如何保存特殊的编码信息。

    4.1.2.38.WriteToString

      function WriteToString:
    UTF8String; virtual;

      调用WriteToString以保存XML文档到UTF8String。如果您希望UTF8String包含XML的缩进,使更多的人易读,设置XmlFormatxfReadable。这不是默认的,也没有使用XML规范。



  • 相关阅读:
    1120. Maximum Average Subtree 子树平均值的最大值
    490. The Maze 迷宫踢足球
    323. Number of Connected Components in an Undirected Graph 连通图的数量
    done infosys_不告你答案的面试
    MyBatis(三)全局配置文件 之 typeHandlers 类型处理器
    MyBatis(三)全局配置文件 之 typeAliases 类型命名
    MyBatis(三)全局配置文件 之 properties 属性
    MyBatis(三)全局配置文件 之 settings 设置
    MyBatis(三)全局配置文件
    MyBatis(二)HelloWorld 案例
  • 原文地址:https://www.cnblogs.com/acuier/p/2352238.html
Copyright © 2020-2023  润新知