飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2005|回复: 0

21天学通VB.NET 第二十章学习笔记[原创]

[复制链接]
  • TA的每日心情
    开心
    2020-3-30 17:42
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2008-11-10 11:22:15 | 显示全部楼层 |阅读模式
    21天学通VB.NET 第二十章学习笔记[原创]
    灵狐社区http://www.zerofox.cn/bbs/index.php首发

    Chapter 20

    XML(eXtensible Markup Language,可扩展的标记语言)是用文本来表示信息的一种方式。XML是一种把关于文本的信息添加到文本的方式。元数据(metadata)是关于数据的数据,元数据描述了怎样、何时以及由何人来收集一特定系列的数据,并告知该数据是何种格式。元数据本质上就是用来理解存储于数据库中的信息的。元数据给出了信息的框架和目的。
    HTML也提供元数据,主要是以文本的形式提供。可用在头标识中,并有一定的层次。HTML是格式化的,并不主要用于鉴别信息。
    XML定义了一种识别文档个部分的方法,它使用了SGML的基本思想,用标识符标记信息段的开始和结束。XML是一种简单化的SGML,它能用于去创建一些行业或技术的标识符集或某种标记语言。
    XML的特征:
    XML应该是在internet上便于使用的;
    XML应该支持广泛的应用程序;
    XML应该与SGML兼容;
    编写处理XML文档的程序 应该是容易的;
    XML中可选性的特征数应该保持最少,理想情况是不是用可选性的特征;
    设计XML应该是很方便的;
    XML的设计应该是严格和简明的;
    XML文档应该是容易创建的;
    XML标记的简洁性是不太重要的。

    元素和属性是XML文档中的很中重要的部分。
    元素是每个XML文件的基础生成单元。它包含了一个开始标识符、一个结束标识符以及它们之间的内容。
    属性是用来提供元素的额外信息的。属性和元素的根本区别:属性不能单独存在,必须要应用到元素中去。属性总是出现在元素的标志符之内。它总有如下形式:
    Name="value"
    一个元素可以有很多属性。
    属性不能有子属性。元素,允许根据需要添加新的子元素或属性。属性化的文档通常比元素化的文档小。
    模式是一个XML应用程序。XML模式定义了一种合适的构造XML文件的方法,其中包括了每个元素、属性、子元素、有效元素的数据类型等。从模式中可以知道数据的结构,知道调用的区域,并有足够的信息通过DOM或使用XMLTextReader返回。
    XML的使用方法很多,最常见的有以下几种:
    1配置信息——很多人使用XML存储配置信息。使用XML来格式化配置文件可以更好的描述变量值。可以用现存的配置文件,也可以自行创建。自行创建通常来说更安全,因为它不会影响已有的配置;
    2数据传输——XML是计算机间传递信息的最好的格式。任何收到它的计算机都可以读取信息,不论它使用的什么操作系统、哪种编程语言。
    3数据存储——XML是小型数据库的最好替代。它允许你创建自我描述的简单文件格式,允许加入关系,而且可以通过程序或手工编辑。

    VB.NET提供的两种使用XML的技术是:
    文档对象模型;
    读者和作者。

    文档对象模型(DOM)是读写XML的标准方法。DOM是万维网协会推荐的针对使用XML的标准程序接口。该协会是标准化XML及其所有相关技术的组织。DOM的版本在多数流行的操作系统上都有,对于多数编程语言都可用,包括VB.NET。DOM是询问XML文件的应用程序接口(API)。DOM背后的思想是任何XML文件都可以用节点树来描述。

    XML文件中常用的节点
    XmlElement——代表XML文件中的一个元素
    XmlAttribute——代表XML文件中的一个属性
    XmlDocument——代表整个文件
    XmlComment——代表XML文件中的注释。XML文件中的注释<!--开始,以-->结束

    让不同类型的节点继承于一个通用节点的好处之一是所有节点公用一套通用的属性和方法。

    所有XML节点的通用属性和方法:
    属性:
    Attributes——节点所有属性的集合。允许通过属性列表导航所有同一层次上的属性
    ChildNodes——该节点所有子节点的集合。这是DOM导航的一种主要办法,可以用for…next循环来对子项循环
    FirstChild——返回当前节点的第一个子节点。这是DOM导航的另一种主要方法,通过找到第一个子节点然后用NextSibling循环返回一个值
    InnerText——每个节点内包含的文本。包括节点内包含的子节点
    Name——当前节点的尖括号形式的文本
    NextSibling——返回与这个节点同层次的下一个可获得节点。
    NodeType——返回当前代码的类型
    方法:
    AppendChild——在当前节点中添加新的子节点。这是扩展当前这个节点集的方法

    XmlDocument支持和XmlNode类同样的属性和方法。使用XmlDocument和DOM读取XML的时候,通常用ChildNodes或FirstChild/NextSibling来检查XML,找到指定的节点。只有XmlDocument可以创建不同的元素、属性等。当某一特定节点建立起来以后,可以用AppendChild方法添加子节点到想要的集合中去。DOM是读写XML文件的标准方法。
    XmlDocument的方法和属性
    属性:
    DocumentElement——文件的根节点
    方法:
    CreateNode——创建新节点到文件中去。这类方法可以创建任意类型的XmlNode节点
    CreateElement——创建新元素
    CreateAttribute——创建新属性
    Load——将XML文件的内容加载到文件中去
    LoadXml——将一个包含XML代码的字符串里的内容加载到文件中去
    Save——将XML文件的内容保存到一个文件中去

    尽管DOM是读写XML文件的强有力的方法,但它受到很多限制。最显著的是当你装载XML文件到DOM中的时候,整个文件都必须装载到内存里。DOM生成完整的树状结构来描述文件,包括所有的节点、节点列表等。如果XML文件很大,这个过程会占用很多内存和时间,特别是只需要文件中一两个条目的时候。
    VB.NET还包括其他用XML工作的方法——读取者和写入者——XmlTextReader和XmlTextWriter。XmlTextReader提供了快速、只读的XML的访问,而XmlTextWriter提供了小而快的编写XML的方法。虽然不如DOM直观,但却具有以下两个优越性:
    处理文件前无需装载整个文件
    XmlTextReader和XmlTextWriter很快
    由于XmlTextReader和XmlTextWriter不在内存中存储文件,有时候将文件的一部分和另一部关联起来有一定的困难。如果想追踪文件的多个部分,而且还想使用XmlTextReader和XmlTextWriter,就需要自己创建代码来完成。用XmlTextReader可以用Read方法循环检测文件来读取文件,在XML文件中的每个节点停留。然后决定是否对当前节点进行操作,如果操作,则使用当前节点其他的关于属性和方法信息。
    XmlTextReader的常见属性和方法:
    属性:
    Name——当前节点的名字
    NodeType——当前节点的类型——元素、属性等
    方法:
    Read——在XML文件中读取下一个节点。每次调用此方法,都会移到下一个节点上去

    XmlTextWriter是通过添加单个的开始和结束元素标识符来建立XML文件的。
    XmlTextWriter的常见属性和方法:
    属性:
    Formatting——用来确定得到的XML被格式化了。
    方法:
    Close——关闭写入者。当用完以后应该及时关闭
    WriteElementString——在新文件中创建新元素。新元素包括了开始和结束标识符以及元素中的文本。创建没有任何子节点的单个元素时应该使用的方法
    WriteStartElement——在文件中创建新元素。该方法只创建元素的开始标识符。创建含有子节点的元素时应该使用的方法
    WriteEndElement——为当前元素写结束标识符

    String类中的indexOf方法和SubString方法可以读取XML并决定它的内容,但并不是读取XML的最有效途径。用DOM或XmlTextReader更适合读取XML。如果需要读取完整的XML文件到内存中去并使用它的话,DOM是最合适的方法。DOM允许前后移动来访问文件,将一节和另一节关联上,并在读文件的时候改变它。
    很多应用程序要用户来定制,这些信息可以很容易的存储在XML文件中,允许用户容易的读取并改变设置。设置一个允许你在文件中存储配置设定并在未来将它们读出的类,创建这个类将帮助用户按照用户的需求定制应用程序。
    可以通过给字符串变量添加适当的开始和结束元素标识符来创建XML。也可用DOM或XmlTextWriter类创建正确的XML文件。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表