一、XML文件注意点
1.内容中不能出现尖括号
例如:下面是不合法的
<grade>成绩<90</grade>
解决方案:使用实体引用<EntityReference>,可以理解为转义
<grade>成绩&st;90</grade> #<代表小于号,>代表大于号
2.另一种方法:把含有保留字符的部分放在CDATA块内部,CDATA块把内部信息视为不需要转义
<![CDATA[ select name,age from Student where score>80 ]]>
3.常用的需要转义的保留字符和对应的实体应用
&:&
<:<
>:>
':'
":"
一共五个,每个实体引用都是以&开头并且以分号结尾的
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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料