一、XML文件介绍
   可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。
   在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。
   可扩展标记语言与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,可扩展标记语言仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:可扩展标记语言极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。 [3]
XML的简单易于在任何应用程序中读/写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其他的数据交换格式,但不久之后它们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。
特征
XML具有以下特点:
   (1) XML可以从HTML中分离数据。即能够在HTML文件之外将数据存储在XML文档中,这样可以使开发者集中精力使用HTML做好数据的显示和布局,并确保数据改动时不会导致HTML文件也需要改动,从而方便维护页面。XML也能够将数据以“数据岛”的形式存储在HTML页面中,开发者依然可以把精力集中到使用HTML格式化和显示数据上。
   (2) XML可用于交换数据。基于XML可以在不兼容的系统之间交换数据,计算机系统和数据库系统所存储的数据有多种形式,对于开发者来说,最耗时间的工作就是在遍布网络的系统之间交换数据。把数据转换为XML格式存储将大大减少交换数据时的复杂性,还可以使这些数据能被不同的程序读取。
   (3) XML可应用于B2B中。例如在网络中交换金融信息, 目前XML正成为遍布网络的商业系统之间交换信息所使用的主要语言,许多与B2B有关的完全基于XML的应用程序正在开发中。
(4)利用XML可以共享数据。XML数据以纯文本格式存储,这使得XML更易读、更便于记录、更便于调试,使不同系统、不同程序之间的数据共享变得更加简单。
   (5) XML可以充分利用数据。XML是与软件、硬件和应用程序无关的,数据可以被更多的用户、设备所利用,而不仅仅限于基于HTML标准的浏览器。其他客户端和应用程序可以把XML文档作为数据源来处理,就像操作数据库一样,XML的数据可以被各种各样的“阅读器”处理。
   (6) XML可以用于创建新的语言。比如,WAP和WML语言都是由XML发展来的。WML(Wireless Markup Language,无线标记语言)是用于标识运行于手持设备上(比如手机)的Intemet程序的工具,它就采用了XML的标准。
总之,XML使用一个简单而又灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。但是,XML并非是用来取代HTML的。HTML着重如何描述将文件显示在浏览器中,而XML与SGML相近,它着重描述如何将数据以结构化方式表示。
格式:
   XML文件格式是纯文本格式,在许多方面类似于HTML,XML由XML元素组成,每个XML元素包括一个开始标记(),一个结束标记()以及两个标记之间的内容,例如,可以将XML元素标记为价格、订单编号或名称。标记是对文档存储格式和逻辑结构的描述。在形式上,标记中可能包括注释、引用、字符数据段、起始标记、结束标记、空元素、文档类型声明( DTD)和序言。
具体规则如下:
1、必须有声明语句。
XML声明是XML文档的第一句,其格式如下:<?xml version="1.0" encoding="utf-8"?>
2、注意大小写
  在XML文档中,大小写是有区别的。“A”和“a”是不同的标记。注意在写元素时,前后标记的大小写要保持一致。最好养成一种习惯,或者全部大写,或者全部小写,或者大写第一个字母,这样可以减少因为大小写不匹配而产生的文档错误。
3、XML文档有且只有一个根元素
  良好格式的XML文档必须有一个根元素,就是紧接着声明后面建立的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。根元素的起始标记要放在所有其他元素的起始标记之前;根元素的结束标记要放在所有其他元素的结束标记之后。
4、属性值使用引号
  在HTML代码里面,属性值可以加引号,也可以不加。但是XML规定,所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。
5、所有的标记必须有相应的结束标记
  在HTML中,标记可以不成对出现,而在XML中,所有标记必须成对出现,有一个开始标记,就必须有一个结束标记,否则将被视为错误。
6、所有的空标记也必须被关闭
 空标记是指标记对之间没有内容的标记,比如“”等标记。在XML中,规定所有的标记必须有结束标记。
 二、MINIXML库介绍
 大家百度一下了解一下吗
 三、解析过程
 需要解析的xml数据:

const char buf[]={"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Fixture Name=\"xhh\" ShortName=\"xp\" Company=\"guangzou\">\r\n</Fixture>"};

解析代码:

int main(void)
{mxml_node_t *node, *tree;Cache_Enable();                   //打开L1-CacheHAL_Init();                     //初始化HAL库Stm32_Clock_Init(160,5,2,4);   //设置时钟,400Mhzdelay_init(400);               //延时初始化uart_init(115200);               //串口初始化MPU_Memory_Protection();     //保护相关存储区域mem_init();printf("mem_perused = %d\r\n",mem_perused());tree = mxmlLoadString(NULL, buf, MXML_TEXT_CALLBACK);//获取根节点node = mxmlFindElement(tree, tree, "Fixture", NULL, NULL, MXML_DESCEND);printf("Company = %s\r\n",  (char *)mxmlElementGetAttr(node, "Company"));printf("ShortName = %s\r\n", (char *)mxmlElementGetAttr(node, "ShortName"));printf("Name = %s\r\n", (char *)mxmlElementGetAttr(node, "Name")); printf("mem_perused = %d\r\n",mem_perused());while(1){delay_ms(500);}
}

解析结果:

四、完整工程下载
csdn付费下载:点击我下载
免费下载:关注下方公众号回复XML解析下载
 

使用STM32或GD32解析xml格式数据相关推荐

  1. php获得帮助类数据_PHP解析xml格式数据工具类示例

    本文实例讲述了PHP解析xml格式数据工具类.分享给大家供大家参考,具体如下: class ome_xml { /** * xml资源 * * @var resource * @see xml_par ...

  2. php解析xml数据格式,PHP解析xml格式数据工具类实例分享

    本文主要介绍了PHP解析xml格式数据工具类,涉及php针对xml格式数据节点添加.获取.解析等相关操作技巧,需要的朋友可以参考下,希望能帮助到大家. 本文实例讲述了PHP解析xml格式数据工具类.分 ...

  3. iOS开发之解析XML格式数据

    XML格式的数据是一种数据的传输格式.因为它方便编写.结构清晰,所以深受程序猿的喜爱,非常多人都喜欢使用XML格式数据传输或者作为程序的配置信息. 如今我将来实如今iOS中解析XML格式数据,语言使用 ...

  4. Android解析xml的方法,Android中解析XML格式数据的方法

    XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...

  5. 解析XML格式数据实例

    前言: 网络数据传输时,最常用的格式有两种:XML和JSON,下面我们就研究如何使用Pull解析和Sex解析来实现对XML格式文件数据的解析. 实例流程: 1.创建服务器:Apache服务器(用于模拟 ...

  6. Android初级开发(九)——网络交互—解析XML格式数据

    一.前言 首先我们先搭建一个web服务器,我这里用的是tomcat,搭建过程可参见tomacat服务器的搭建:http://blog.csdn.net/qq_28585471/article/deta ...

  7. Xml 格式数据的生成和解析

    相关阅读 XML约束 Xml 格式数据的生成和解析 XML解析器 什么是XML XML全称为Extensible Markup Language, 意思是可扩展的标记语言,它是 SGML(标准通用标记 ...

  8. Android——网络交互,如何调用接口并且json解析json格式和pull解析xml格式

    本菜鸟因为之前一直使用的是公司前辈封装好的类(网络接口调用超级方便有木有)完全没有想过有一天我会自己写,然后今天接触的时候一脸懵逼,然后今天花了一天时间终于研究好了:哈哈哈哈哈 二话不说先上代码: p ...

  9. ajax请求json和xml数据及对json和xml格式数据的解析

    ajax请求json和xml数据及对json和xml格式数据的解析 一.ajax请求json数据并解析 ajax的写法: json数据解析: 请求json经常出现的跨域报错: 二.ajax请求xml数 ...

  10. java获取微信xml数据格式的文件_(5)微信二次开发 之 XML格式数据解析

    1.首先理解一下html html的全名是:HyperText Transfer markup language 超级文本标记语言,html本质上是一门标记(符合)语言,在html里,这些标记是事先定 ...

最新文章

  1. signature验证/salt验证/token验证的作用
  2. android 解决ListView点击与滑动事件冲突
  3. 虚拟机VMware12下安装windows7 x64系统使用教程
  4. BugkuCTF-Misc:come_game
  5. 大型WEB架构概况(笔记整理)一
  6. java 8 lambda_玩Java 8 – Lambda,路径和文件
  7. 阿里巴巴Java开发手册-使用JDK8的Opional类来防止出现NPE问题
  8. 【交通标志识别】基于matlab GUI矩匹配算法路标识别【含Matlab源码 1175期】
  9. 如何导出久其报表所有数据_久其报表软件基本操作流程..docx
  10. 微信小程序播放器实战开发教程
  11. 想学制作外挂的新手看过来
  12. w10打游戏老是弹出计算机,win10游戏频繁弹回桌面怎么办_win10玩游戏总切回桌面的解决方法-系统城...
  13. Tomcat 8.5 HTTP 报文只返回200 不返回 OK
  14. php薄饼,薄饼的做法大全
  15. Scala 继承和特质
  16. vue使用高德地图并且绘制多边形
  17. Carmichael function[卡迈克尔函数相关性质]
  18. Windows电脑上那些为人熟知的视频剪辑调色应用
  19. 为什么要用Linux系统?
  20. 告别获取不安全的相对路径-取当前类的Classpath

热门文章

  1. 《JavaScript权威指南第7版》第4章 表达式和运算符
  2. [工具] Mac下一键APK逆向环境
  3. 主流代码扫描静态分析工具
  4. 路由器测试的类型和方法
  5. 高等数学(第七版)同济大学 习题5-2 个人解答
  6. 软件开发模型:瀑布模型,增量模型,原型模型,螺旋模型,喷泉模型,敏捷开发模型
  7. 18位华人当选2022年加拿大工程院院士!京东副总裁梅涛入选!
  8. python 自动控制鼠标移动脚本
  9. linux下最全的快捷键大全
  10. linux 查看tomcat日志 关键字