XMl与Json学习笔记小结
来源:互联网 发布:长城证券交易软件下载 编辑:程序博客网 时间:2024/06/05 19:25
概述:
在我们的项目中用到XMl和Json格式的数据或者文件作为数据保存的格式,于是学习了XMl和Json的语法,做个小笔记总结下。
XML基本知识点
一个简单的xml实例
<?xml version="1.0" encoding="UTF-8"?><note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body></note>
1 XML文档必须要有根元素 如下所示:
<root>
<book>
......
</book>
</root>
2 XMl声明文件的可选部分如果存在需要放在文档的第一行.如:
<?xml version="1.0" encoding="UTF-8"?>
3 所有的XML元素必须有一个关闭的标签
4 XMl对大小写敏感,必须使用相同的大小写来编写打开标签和关闭标签
如 <Title>Hello<title>错误 <Title>Hello<Title>才正确
5 XML的属性必须由引号(单引号或者双引号) 如
<file type="gif">hello.gif</file>
6 当我们使用特殊字符的时候需要使用转义字符,在XML中五个预定义的尸体引用
⁢ < less than
> > great than
& & ampresand
' ' apostrophe
" " quoutation mark
7 XMl中的注释 <!-- this is a comment -->
8 一个元素可以包含 属性 元素 文本 或者混合这三种。 如:
<note date="2017-10-09"> <to>Tove</to> <from>Jani</from></note>
其中date是属性 "to" "from"是元素,"Tove", "Jani"是文本
实例:
一个用tinyxml2::XMLElement解析xml数据的C++实例,代码不全,仅仅参考
void parse_element(tinyxml2::XMLElement *xml_element_data, cmd_data_t *p_data);/** * @brief 解析入口函数* @param data [in&out] 解析后的数据 * @param p_element [in] 根元素 */ int parse_xml_data(cmd_t* data, tinyxml2::XMLElement* p_element){assert(p_element != NULL);cmd_data_t* p_data = new cmd_data_t;tinyxml2::XMLElement* xml_element_data = p_element->firstChildElement();while(NULL != xml_element_data){//遍历提取每个OSD基本信息parse_element(xml_element_data, p_data);xml_element_data = xml_element_data->NextSiblingElement();}data->cmd_data = p_data;return 0;}/** * @brief 解析具体元素中的数据 * @note 当前元素中就一个属性和一个元素* @param xml_element_data [in] 需要解析的元素* @param p_data [in&out] 解析的数据 */ void parse_element(tinyxml2::XMLElement *xml_element_data, cmd_data_t *p_data){char* pConfigToken = NULL;char* pSourceToken = NULL;//匹配元素名称if (strcmp(xml_element_data->Name(), "Data") != 0)return;//获取token属性pSourceToken = xml_element_data->Attribute("token", NULL);if (NULL == pSourceToken)return;//解析子元素CfgTokentinyxml2::XMLElement *pCfgToken = xml_osd->FirstChildElement("CfgToken");if (NULL == pCfgToken)return;pConfigToken = pCfgToken->GetText();if (NULL == pConfigToken)return;strncpy(p_data->configToken[p_data->idx], pConfigToken, MAX_SIZE);strncpy(p_data->sourceToken[p_data->idx], pSourceToken, MAX_SIZE);p_data->idx++;}
贴这段代码主要是了解几个函数:
1 firstChildElement() -->获取当前元素的第一个子元素
2 NextSiblingElement() -->获取下一个元素
3 Attribute() -->获取当前元素的一个属性
4 GetText() -->获取元素的文本
JSON基本知识点
JSON:Java Script Object Notation(javaScript对象表示法)
1 SON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台,json使用键值对的方式存储数据
2 json值可以为以下几种之一
数字 整数或者浮点数 如 {"age":18}
字符串 在双引号中 如 {"name":"xiaoming"}
逻辑值 true或false如 {"flag":true}
数组 在中括号中 如 {"student":[{"name": "xiaoming"}, {"name": "xiaohong"}]}
对象 在大括号中 如 {"name":"xiaoming", "age":18}
null 如 {"student": null}
3 json文件类型是以".json"结尾的文件
暂时只写这么多,以后再补充。。。
- XMl与Json学习笔记小结
- json与xml学习
- 学习笔记:XML与JSON的介绍与对比
- XML格式数据与JSON格式数据学习笔记
- Android学习笔记-XML解析和JSON
- 安卓新手学习笔记 ——XML解析与JSON解析
- 疯狂XML学习笔记(4)------------XML的对手 JSON
- json学习小结
- JSON学习小结
- JSON学习小结
- xml学习小结
- XML Schema学习小结
- XML学习小结
- 《w3school-XML》学习小结
- XML学习小结
- XML学习小结
- 学习xml文件小结
- xml学习小结
- 《算法4》优先队列和堆排序
- Java命令行编译文件时出现的错误,找不到符号或软件包不存在等
- 九九表
- Hive join优化(mapjoin,streamtable)
- 68.Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析及其在Spark中的应用源码解析
- XMl与Json学习笔记小结
- VLAN的划分及VLAN间的通信
- 欢迎使用CSDN-markdown编辑器
- Codeforces Round #143 (Div. 2) D. Magic Box
- 2017-10-12连续总结第二天
- ThinkPHP模板范围判断标签使用
- 【JZOJ5402】God Knows
- [洛谷 1967]货车运输---kruskal+lca(倍增)+遍历 or kruskal重构树+lca(倍增)
- 分布式-查询MySQL类算法-思路梳理