python3之格式化⽂件xml ,json
1、结构化⽂件存储
-xml,json
-为了解决不同设备之间信息交换
-参考资料
-
-XML(extensibleMarkupLanguage),可以扩展标记语⾔
-标记语⾔:语⾔中使⽤尖括号括起来的⽂字标记
-可扩展:⽤户可以⾃⼰定义需要的标记
-例如:
-
是w3c组织制定的⼀个标准
-描述的是数据本⾝,即数据的结构和语义
-HTML侧重于如何显⽰web页⾯中的数据
2、XML ⽂档的构成
-处理指令(可以认为⼀个⽂件内只有⼀个处理指令)
-以xml关键字开头,在xml⽂件中只能出现⼀次并且必须在头部
-内容是与xml本⾝处理起相关的⼀些声明或者指令,⼀般⽤于声明XML的版本和采⽤的编码                      -version属性是必须的
-encoding属性⽤来⽀出xml解释器使⽤的编码
-根元素(⼀个⽂件内只有⼀个根元素)
-在整个xml⽂件中,可以把它看作⼀个树形结构
-只有⼀个根元素,根元素⾥的都是他的⼦元素
-⼦元素
-属性
-内容:表明标签所存储的信息
-注释:起说明解释的作⽤;注释不能嵌套在标签⾥;只有在注释的开始和结尾使⽤双短横线;三短横线只能出现在开头不能在结尾
1
<Teacher>2
⾃定义标记Teacher 3
在两个标记之间任何内容都应该跟Teacher 相关4<Teacher>
-
保留字符的处理
-XML中使⽤的符号可能跟实际符号相冲突,典型的就是左右尖括号
-使⽤实体引⽤(EntityReference)来表⽰保留字符
1<score> score>80 </score> #有错误,xml中不能出现>
2<score> score>:80 </score>  #使⽤实体引⽤
-把含有保留字符的部分放在CDATA块内部,CDATA把内部信息视为不需要转义
1<![CDATA[
2    select name,age
3    from Student
4    where score>80
5]]
6>
-常⽤的需要转移的保留字和对应实体引⽤
-&:&
-<:&It;
python怎么读取json文件->:>
-' :'
-" :"
⼀共五个,每个实体引⽤都以&开头并且以分号结尾
-XML标签的命名规则
-Pascal命名法
-⽤单词表⽰,第⼀个字母⼤写
-
⼤⼩写严格区分
-配对的标签必须⼀直
-命名空间
-为了防⽌命名冲突
-如果归并上述两个内容信息,会产⽣冲突
-为了避免冲突,需要给可能冲突元素添加命名空间
-xmlns: xml name space 的缩写
3、xml访问
-读取
-XML读取分两个主要技术,SAX,DOM
-SAX(Simple API for XML):
-基于时间驱动的API
-利⽤SAX解析⽂档涉及到解析器和事件处理两部分
-特点:快;流式读取
-DOM
-是w3c规定的XML编程接⼝
-⼀个XML⽂件在缓存中以树形结构保存,读取
-minidom
-minidom.parse(filename):加载读取的xml⽂件,filename也可以是xml的代码
-doc.documentElement:获取xml⽂档对象,⼀个xml⽂件只有⼀个对于的⽂档对象      -Attribute(attr_name):获取xml节点的属性值
-ElementByTagName(tage_name):得到⼀个节点对象集合
-node.childNodes:得到所有孩⼦节点
-node.childNodes[index].nodeValue:获取单个节点值
-
node.firstNode:得到第⼀个节点,等价于node.childNodes[0]
-node.attributes[tage_name]
-
-etree
-以树形结构来表⽰xml
-iterator:得到相应的可迭代的node集合
-root.iter
-find(node_name):查指定node_name的节点,返回⼀个node        -root.findall(node_name):返回多个node_name的节点
-node.tag:node对应的tagename
-:node的⽂本值
-node.attrib:是node的属性的字典类型的内容
4、xml⽂件写⼊
-更改
-ele.set:修改属性
-ele.append:添加⼦元素
-ve:删除元素
-⽂件l
-⽣成创建
-SubElement
-minidom写⼊        -etree创建
5、JSON
-在线⼯具
-

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。