一、XML文件注意点

1.内容中不能出现尖括号

例如:下面是不合法的

<grade>成绩<90</grade>

解决方案:使用实体引用<EntityReference>,可以理解为转义

<grade>成绩&st;90</grade>  #&lt;代表小于号,&gt;代表大于号

2.另一种方法:把含有保留字符的部分放在CDATA块内部,CDATA块把内部信息视为不需要转义

<![CDATA[

  select name,age

  from Student

  where score>80

  ]]>

3.常用的需要转义的保留字符和对应的实体应用

&:&amp;

<:&lt;

>:&gt;

':&apos;

":&quot;

一共五个,每个实体引用都是以&开头并且以分号结尾的

4.命名规则

Pascal命名法;用单词命名,首字母大写;大小写严格区分;配对的标签必须是一致的。

5.命名空间

为了防止命名冲突,需要给可能产生冲突的元素添加命名空间

xmlns:xml  name  space  的缩写

例子:


<Schooler xmlns:student="http://my_student"  xmlns="http://my_room">

    <student:Name>LiuYing</student:Name><!--其实这里面的name容易产生歧义,所以定义了两个命名空间来对name加以区分-->

    <Age>23</Age>

    <room:Name>2014</room:Name>

    <Location>1-23-1</Location>

</Schooler>

6.xml访问

(1)读取

SAX(Simple API for XML):基于事件驱动API

利用SAX解析文档设计到解析器和事件处理两部分

​特点:i.快​;ii.​流式读取(通俗的来说按顺序读下去);

DOM​:i.是w3c规定的XML编程接口;ii.一个XML文件在缓存中以树形结构保存,读取​;iii.​用途:定位浏览XML​任何一个节点信息;添加删除相应内容;iv.minidom:

minidom.parse(filename):加载读取的xml文件,filename也可以是xml代码​。

doc.documentElement:获取xml文档对象,一个xml文件只有一个对于的文档对象​。

node.getAttribute(attr_name):获取xml节点的属性值。

node.getElementByTagName(tag_name):得到一个节点对象集合。

node.childNodes:得到所有孩子节点​。

node.childNodes[indexs].nodeValue​:获取单个节点值。

node.fistNode:得到第一个节点,等价于:node.childInde[0]

node.attributes[tag_name]

三、源码

D30_1_XmlNameSpace.xml

https://github.com/ruigege66/Python_learning/blob/master/D30_1_XmlNameSpace.xml​

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Python连载44-XML其他注意点的更多相关文章

  1. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  2. python标准库xml.etree.ElementTree的bug

    使用python生成或者解析xml的方法用的最多的可能就数python标准库xml.etree.ElementTree和lxml了,在某些环境下使用xml.etree.ElementTree更方便一些 ...

  3. 在python中处理XML

    XML是实现不同语言或程序之间进行数据交换的协议,XML文件格式如下: <data> <country name="Liechtenstein"> < ...

  4. [python标准库]XML模块

    1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...

  5. python专题-读取xml文件

    关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...

  6. python模块:xml

    """Core XML support for Python. This package contains four sub-packages: dom -- The W ...

  7. 【304】python专题-读取xml文件

    参考:XML DOM 参考手册(w3school) 参考:python专题-读取xml文件 参考:请问用python怎么修改xml的节点值? 1. 读取标签内的文本(Python) 如下的 xml 文 ...

  8. Python模块 shelve xml configparser hashlib

    常用模块1. shelve 一个字典对象模块 自动序列化2.xml 是一个文件格式 写配置文件或数据交换 <a name="hades">123</a>3. ...

  9. Python连载13-shutile模块(续)和zipfile模块

    一.shutil模块(续) 1.函数:upack_archive() (1)用法:解包操作 (2)格式:shutil.unpack_archive("归档文件地址“,”解包之后的地址“) ( ...

  10. Python连载12-shutil模块

    一.shutil模块 1.函数:copy() (1)用法:复制文件0 (2)格式:copy(来源路径,目标路径) (3)返回值:返回目标路径 (4)注意:拷贝的同时可以给文件重命名 source_pa ...

随机推荐

  1. sql server编写脚本求解第1天1分钱之后每天两倍持续一个月的等比数列问题

    一.问题 问题1 场景:如果你未来的丈母娘要求你,第1天给她1分钱,第2天给2分钱,第3天给4分钱,以此类推,每天给前一天的2倍,给1个月(按30天)算就行.问:第30天给多少钱,总共给多少钱? 问题 ...

  2. [Go]TCP服务中读写进行协程分离

    读写两部分进行一下分离,中间通过chan进行传递数据 ,这样可以方便的在write中进行一些业务处理 single/snet/tcpconn.go package snet import ( &quo ...

  3. 给定数轴上的n个点,求距离最近的两个点的距离

    public class MinimumSpacing { //给定平面上的n个点,求距离最近的两个点的距离. //无从下手的话,先分解问题,分解成简单的,逐个分析,然后再合在一起考虑 //这是个2维 ...

  4. qt 自定义控件窗口提升

  5. java之对象类型转换

    基本数据类型之间的转换: 自动类型转换:小的数据类型可以自动转换成大的数据类型: 强制类型转换:可以把大的数据类型转换成小的数据类型:float = (float)32.0; public class ...

  6. 对numpy.meshgrid()理解

    一句话解释numpy.meshgrid()——生成网格点坐标矩阵.关键词:网格点,坐标矩阵 网格点是什么?坐标矩阵又是什么鬼?看个图就明白了: 图中,每个交叉点都是网格点,描述这些网格点的坐标的矩阵, ...

  7. Vue 从入门到进阶之路(十一)

    之前的文章我们说了一下 vue 中组件的原生事件绑定,本章我们来所以下 vue 中的插槽使用. <!DOCTYPE html> <html lang="en"&g ...

  8. 执行超大的.sql文件处理,100M++

    sqlcmd的命令参数如下: 1    [-U 登录 ID]             [-P 密码] 2  [-S 服务器]                [-H 主机名]           [-E ...

  9. C#-Excel导入工资条群发邮箱

    第一次写随笔,一名在实习的程序猿,做的一个小应用,需要的朋友可以参考参考, 使用WinForm实现了一个导入Excel,群发工资条的功能.功能已经实现,还不够完善,. 大致运用了OleDbConnec ...

  10. 由浅入深了解RabbitMQ

    简介 RabbitMQ是流行的开源消息队列系统.RabbitMQ是AMQP(高级消息队列协议)的标准实现.支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.Actio ...