今天是本人第一次写博客,之前闭门造车闹出过很多笑话,恰巧这几天刚刚重温了一遍XML的知识,决定把XML的知识再来从头到尾的理一遍,感触颇多,今天分享给大家。希望大家能多多注意其中的要点。

  1、定义

  首先,可能现在问一句博友,XML是什么。相信很多博友都可以回答的很好,官方解释是一种可扩展标记语言。但是,再问大家一句,什么是标志语言,什么是又叫做扩展性,相信基础不是很牢固的博友就可能有点懵圈。

  当然如果您了解HTML这门语言的话,相信对标记型语言这个词肯定不陌生。这门语言含有很多的标签,类似于<html>、<input>等等,这些标签呢,都是在HTML自己的规范里面定义好的,而XML则是自己可以定义这些标签。故可扩展型一词由此而来,其实他俩的区别并不仅仅是这么简单。千万不要混淆的是,XML并不是标记语言,他是创建标记语言的源语言(如HTML),另外他还有很多重要的用途。

  下面是一个XML的简单事例:

    <note>

    <to>XIAOBENDAN</to>

    <from>BANK</from>

    <heading>Reminder</heading>

     <body>我想你了</body>

    </note>

    抛开语法不谈,其实是很浅显的一个note信息,存储了这段信息的制作者以及收件人。

    heading这个标签中存放的是这段信息的内容,body这个标签则是正文主题,即想要表达的内容。但是,其实这段文本根本没有做什么功能,仅仅的只是纯文本而已,可以处理文本文件的程序都可以毫不费力的去处理这个XML文件。

  2、XML的作用

  当初设计XML这门语言是用作web数据传输和交互的工具,说白了就是实现信息交互的一个媒介,可能有人又要问了,既然有了HTML语言,为什么还需要再设置一个XML语言呢。HTML和XML都含有标签,有着相似的语法,都是用标记来描述网页中的内容。

  其实,最大的不同是:HTML语言作为构成网页的一部分,他把数据和显示混在一起,既当爹又当妈。而XML则是仅仅只有存储数据的功能,他不能描述网页具体的外观和内容,他只是描述数据的数据形式和结构,他把数据和显示分开,这也是本质的区别! 

  而正是这种区别,让XML在网络应用和信息传输上面具有高兼容性,方便并且可扩展。 

  3、XML需要格式最重要的部分

  借鉴了HTML格式不严谨带来的诸多问题之后,XML有自己编写的严格的规范(当然也不是很多。。)。

  首先我们来看一段HTML的语句:

    <html>
    <BOdy>
    <p>hr 标签定义水平线:</p>
    <hr />
    <p>这是段落。</p>
    <HR />
    <p>这是段落。</p>
    <hr />

    <font color = red>sss</font>
    </bodY>
    </html>

   在XML文档中,代码基本都是错误的,因为XML编写有很严格的规定:

    1、所有的标记都有一个相应的合理的结束标记。

    2、所有的XML标记都必须合理的嵌套。

    3、所有的XML标记都是区分大小写的。

    4、所有的标记的属性必须以" "括起来。

    所以,上列语句在XML中应该这样编写:

    <html>
    <BOdy>
    <p>hr 标签定义水平线:</p>
    <hr />
    <p>这是段落。</p>
    <HR />
    <p>这是段落。</p>
    <hr />

    <font color = red>sss</font>
    </bodY>
    </html>

    另外,XML的标记也必须遵循下列规则:

    1、名字中可以包含数字字母及其他字符。

    2、名字不能以数字或者下划线(_)开头。

    3、名字中不能以XML开头。

    4、名字中不能包含空格。

    4、结语

    XML这门语言是web中最重要的几门语言之一,想要精通webservices和网络传输协议,这是必须要攻克的一道门槛。今天暂时给博友们介绍一下XML这门语言是什么以及他的作用,然后又介绍了他的标签的命名规范以及与HTML语言的几点不同之处。谢谢大家的阅读,希望有不对的地方,在下面评论区帮小生指出来,下一篇将会介绍RSS阅读器的知识,鄙人打算做一个自己的RSS阅读器,是用C#做的,会把每天遇到的问题以及思路分享给大家。

    本人王银行,现在在程序员的路上算是刚刚起步,最近由于公司需要,慢慢接触到webservices和socket这两方面,之前一直没有细细的认真去钻研。当我从键盘上敲下每一个字的时候,都感觉在与读者亲密的交谈,今天是生平第一次写属于自己的博客,发表自己的看法。以后会时常把自己平时所犯的错误及吸取的教训写到博客园上,希望可以与博友们一起进步,谢谢!!

    转载请声明,谢谢!

XML随笔:语法快速入门及当下流行的RSS简析的更多相关文章

  1. Objective-C基础语法快速入门

    Objective-C基础语法快速入门 2010-11-04 16:32 折酷吧 zheku8 字号:T | T 假如我们对面向对象的思维已经C语言都很熟悉的话,对于我们学习Objective-C将会 ...

  2. Less 语法快速入门

    Less 语法快速入门 Less 是一门 CSS 预处理语言其可以运行在 Node 或浏览器端. 它将传统的 css 样式结构单一的排版顺序进行了优化,让我们可以通过层级嵌套的方式将 css 类名与H ...

  3. T4语法快速入门

    1.什么是T4? T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit.T4(Text Template Transformation Toolk ...

  4. shell语法快速入门(1)

    #得到绝对路径 DIR=$(cd `dirname $0`;pwd) $DIR/file.txt #去掉#注释 egrep -v "(#|^$)" /etc/zabbix/zabb ...

  5. python语法快速入门(1)

    http://www.runoob.com/python/python-tutorial.html Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言 ...

  6. Ruby 语法快速入门

    作用域:指的是类,模块,方法 常量:无需指定类型,全大写 FANS = 100 puts "We have" + FANS.to_s + "fans" 变量 局 ...

  7. Markdown 语法快速入门手册

    Markdown 是一种轻量级标记语言,能将文本换成有效的XHTML(或者HTML)文档,它的目标是实现易读易写,成为一种适用于网络的书写语言. Markdown 语法简洁明了,易于掌握,所以用它来写 ...

  8. Vue3语法快速入门以及写一个倒计时组件

    Vue3写一个倒计时组件 vue3 beta版本发布已有一段时间了,文档也大概看了一下,不过对于学一门技术,最好的方法还是实战,于是找了一个比较简单的组件用vue3来实现,参考的是vant的count ...

  9. Python3基础语法快速入门

    01 Python 简介 Python 是一种高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python 由 Guido van Rossum 于 1989 年底在荷兰国家数学和计算机科学 ...

随机推荐

  1. js使用sessionStorage、cookie保存token

    本文是参考别人的博客写的,图片直接用的别人的 1.Token:token是客户端频繁向服务器端请求数据,服务器频繁的去数据库查询用户名和密码进行对比,判断用户名和密码正确与否,并作出相应的提示,在这样 ...

  2. jsp页面错误的全局处理

    网上搜索spring mvc项目全局异常处理: 大致可以找到两种方案 : 方案1: ExceptionHandlerResolver . spring 提供了两种默认实现,当然你也可以自己实现.. 方 ...

  3. MVVM中viewmodel的理解

    网上有人写了这段话,我也有同感,特别是第一种用法,很重要,后一种用法,我觉得是把第一种用法加入controller中了. 第一种 “view model” 是 “model for the view” ...

  4. 20170531动手实践MyOD——20155312

    实践题目 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 对题目分析如下 od的功能(参考Linux od命令详细介绍及用法实例): od命令用 ...

  5. 686. Repeated String Match

    方法一.算是暴力解法吧,拼一段找一下 static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); cl ...

  6. 2019.01.17 bzoj2753: [SCOI2012]滑雪与时间胶囊(最小生成树)

    传送门 最小生成树菜题. 题意:给出一些有向边,问有向的最小生成树. 思路:先dfsdfsdfs一把所有有用的边都存起来,然后按终点点权为第一关键字,边权为第二关键字给边排序保证最小生成树的合法性,排 ...

  7. 2018.10.31 NOIP模拟 一串数字(数论+贪心)

    传送门 把每一个数aaa质因数分解. 假设a=p1a1∗p2a2∗...∗pkaka=p_1^{a_1}*p_2^{a_2}*...*p_k^{a_k}a=p1a1​​∗p2a2​​∗...∗pkak ...

  8. Java中各类Cache机制实现解决方案[来自CSDN]

    摘要:在Java中,不同的类都有自己单独的Cache机制,实现的方法也可能有所不同,文章列举了Java中常见的各类Cache机制的实现方法,同时进行了综合的比较. 在Java中,不同的类都有自己单独的 ...

  9. java常用设计模式八:代理模式

    一.概述 代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象. 其特征是代理类与委托类有同样的接口,真正的核心业务逻辑还是在实际对象里面. 二.为什么要使用代理模式 当 ...

  10. java Concurrent包学习笔记(五):Semaphore

    一.Semaphore 是什么  信号量Semaphore是一个并发工具类,用来控制可同时并发的线程数,其内部维护了一组虚拟许可,构造函数初始化的时候可以指定许可的总数量 每次线程执行操作时先通过ac ...