XML语言学习随笔

本文转载于:猿2048网站☞XML语言学习随笔php

     XML和HTML都是W3C的定制的标准,XML的诞生自己是为了替代不成熟的HTML,可是由于现实的环境,XML替代HTML并未成功。以后W3C为了代码严谨性的决心,又发布了升级版的标记语言XHTML,可是依然由于显示环境的主要缘由,未能成功推广,知道今天HTML5的诞生!浏览器

     XML简单的特色服务器

       1. 比HTML更加规范严谨工具

       2.具有树状格式学习

       3.具备层次感网站

     XML的组成编码

       1.文档声明spa

       2.元素code

       3.属性视频

       4.注释

       5.CDATA区

       6.特殊字符

       7.处理命令

 

    文档声明

         在XML中必须存在文档声明,不然绝对是一个不规范的XML,写法:<? xml version="1.0" encoding="utf-8" standalone="yes" ?><xml>

         属性 version 表示版本号 附:由于XML并未推广成功,因此XML目前只有1.0版本

         属性 encoding 文本编码  

         属性 standalone 独立运行 附:平常中几乎这个属性不怎么出现

        关于文本编码声明说明:

           平常生活中,咱们写完XML代码而后保存XML格式文件到硬盘须要转换到二进制,当文本转到二进制后,若是放在服务器,有客户这是访问了这个文档,那么此时服务器就会发生二进制给对方,对方收到后,为了还原,因此浏览器会自动解码成可以看懂的编码,而在中国浏览器使用的是GBK编码,而编辑XML的工具保存XML的时候,一般是UTF-8编码,为了使客户获取文本后,可以看到正确的内容,此时咱们就须要在文档中声明 编码格式为 encoding=”UTF-8“ 那么在对方浏览器解析二进制后,就会自动转换成UTF-8而不是转换为GBK编码的乱码形式显示。

    

    元素(标记/标签)

        1.标签不像HTML 中能够有<br/>这种形式存在,XML是规范严谨的 因此有开始标签,必须有结束标签

        2.标签和HTML同样,不支持交叉嵌套

        3.一个合理的XML文档,整篇只会存在一个根元素,充分体现树状形式

        4.对于XML而言 空格和换行符都会看成内容处理,因此严谨的XML文档请勿如同平时HTML同样随意打上空格和换行符!

        5.XML是区分大小写的,因此请确保大小写不规范

    属性

      1.  一个标签能够有多个属性,就如同声明标签<XML></XML>同样里面能够放版本,编码等属性    

      2. 属性的值根据XML的规范须要打上双引号

   CDATA

      在平常中,就如同我如今写笔记,不妨会出现<> [] 此类特殊字符,而XML中<>是具有特殊含义的。通常咱们能够用转义字符方式显示,可是若是内容特别多,这样比较麻烦,因此XML特别提供了CDATA分区。

    咱们只要将内容先后输入<![CDATA[ code ]]> 标签,而后在code区输入本身须要写的内容,那么XML就不会将此区域里的特殊字符<>此类看成标签订义,而是正常的文本!

    

   浏览器解析的三个方式   附: 解析就是为了对HTML或XML动态的能够改变文档的内容,以及能够结构化的查询某个标签的具体内容 属性等。

      DOM解析:将全部的标签都转换为对象,存放在内存中,这样资源能够随意调用修改,可是由于在内存因此特别占用资源

      SAX解析:这种解析方式会逐行地去扫描XML文档,当遇到标签时会触发解析处理器,采用事件处理的方式解析XML (Simple API for XML) ,不是官方标准,但它是 XML 社区事实上的标准,几乎全部的 XML 解析器都支持它。优势是:在读取文档的同时便可对XML进行处理,没必要等到文档加载结束,相对快捷。不须要加载进内存,所以不存在占用内存的问题,能够解析超大XML。缺点是:只能用来读取XML中数据,没法进行增删改,以及触发后则全篇解析。

      Pull解析: 这种方式是sax解析的改版,安卓一般采用的方式, 一样采用事件触发解析,可是不须要扫描整个文件流,找到须要的那部分,就解析那部分,避免了SAX解析方式,只要触发则全篇解析,因此比sax解析更简单和对内存占用更小!

 

 关于老师讲的学习这些知识:咱们学习,是否须要掌握到所有的具体精细到点内容的问题。这是没必要要的,咱们只要能大概知道这部分知识,之后能在开发中遇到问题时,大概知道是哪方面的,在着重学习其核心知识,能事半功倍,若是如今连运用场合都不知道,盲目去直接跟着视频学习到具体核心技术点的那些复杂直视,按照一般人的大脑会把没用的都淘汰掉,估计学完也就忘完了!

 人脑是奇妙的,若是你不告诉他这种知识可以作什么,就会很快遗忘。若是你不知道学习这篇内容的学习目的,那么同样会学得多忘得多!       

相关文章
相关标签/搜索