嵌入式Linux解析XML开发之:(一)XML基础
来源:互联网 发布:易语言界面源码 编辑:程序博客网 时间:2024/05/19 16:37
参考:
W3C官网:https://www.w3.org/
当前XML版本:https://www.w3.org/TR/2013/NOTE-xml-c14n2-20130411/
最新在学习嵌入Linux开发解析XML文件的内容。在这里做个笔记与大家分享,共同学习。有错误的地方欢迎大家指正。
今天主要讲的内容是XML的基础知识,只有了解了XML的历史,知道它是作什么用的,才可以进行我们的解析开发工作。下面的内容主要整理于互联网。
1.XML发展历史
早在1969年,IBM公司就开发了一种文档描述语言GML用来解决不同系统中文档格式不同的问题,GML是IBM许多文档系统的基础,包括Script和Bookmaster,接下来的日子里,这个语言在1986年演变成一个国际标准(ISO8879),并被称为SGML,SGML是很多大型组织,比如飞机、汽车公司和军队的文档标准,它是语言无关的、结构化的、可扩展的语言,这些特点使它在很多公司受到欢迎,被用来创建、处理和发布大量的文本信息。
在1989年,在CERN欧洲粒子物理研究中心的研究人员开发了基于SGML的超文本版本,被称为HTML。HTML继承了SGML的许多重要的特点,比如结构化、实现独立和可描述性,但是同时它也存在很多缺陷:比如它只能使用固定的有限的标记,而且它只侧重于对内容的显示。同时随着Web上数据的增多,这些HTML存在的缺点就变的不可被忽略。W3C提供了HTML的几个扩展用来解决这些问题,最后,它决定开发一个新的SGML的子集,称为XML。XML的出现就是为了解决HTML所存在的这些弊病。它保留了很多SGML标准的优点,但是更加容易操作和在WWW环境下实现。在1998年,它就变成了W3C的标准。
2.XML语法结构
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
第一行是XML声明。它定义XML的版本(1.0)和所使用的编码(ISO-8859-1 = Latin-1/西欧字符集)。下一行描述文档的根元素(像在说:“本文档是一个书店”)。接下来有3个book子元素,每个book子元素里又有描述根的4个子元素(title,author,year以及price)。最后一行定义根元素的结构。
XML文档必须包含根元素。该元素是所有其他元素的父元素。XML文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。所有元素均可拥有子元素,所有元素均可拥有文本内容和属性(类似HTML中)。
- 嵌入式Linux解析XML开发之:(一)XML基础
- 嵌入式Linux解析XML开发之:(二)libxml2
- Android开发基础之XML解析
- java基础--解析XML(一)
- 在arm嵌入式linux下解析XML文件(转)
- XML解析入门之JDOM(一)
- IOS 学习之XML解析(一)
- Android基础之XML解析
- xml解析之sax基础
- Android基础之XML解析
- Java基础之解析XML
- XML解析(一),SAX解析XML
- Android开发进阶(一)XML文件解析之SAX模式解析
- XML基础(一)
- XML基础(一)
- XML基础(一)
- xml基础(一)
- iOS开发之XML解析
- ios开发常用宏
- Linux下tomcat JVM内存 配置
- 学习C++反汇编-多继承
- Qt 样式表 边界盒模型
- 基于人工神经网络的五子棋博弈的一些思路
- 嵌入式Linux解析XML开发之:(一)XML基础
- 第24讲项目1——分段函数求值
- OpenCV环境配置
- if与if-else的区别
- 搜索算法阶段性总结
- 【设计模式之代理模式】
- 新手上路
- 安卓基础:使用WebView浏览网页
- openssl 加密