XML解析原理 | QiuRiMangCao
来源:互联网 发布:nginx 自建dns解析 编辑:程序博客网 时间:2024/06/15 10:14
XML解析原理 | QiuRiMangCao@author QiuRiMangCao | 秋日芒草 @Description XML基础 | 解析原理 | 解析方法@time 2017-08-10xml 解析后乱码问题?contact.xml 里面写的是字符编码过程:字符-字节写完xml-保存-硬盘(字节) 都需要查码表windows - GBK解码过程:字节-字符contact.xml(硬盘) - 浏览器 - 字符 也要查码表 默认为utf-8涉及xml文件的编码问题:1.保存xml文件的时候(编码过程) 可以在保存文件的时候选择保存时的编码为utf-82.打开/解析xml文件的时候(解码问题) 可以对xml文档声明//<?xml version="1.0" encoding="utf-8" ?>//解码时用的码表如果要保证读取的xml文件不存在中文乱码问题:1.保证以上二个地方的编码一致2.编码要支持中文补充:Windows的默认编码为GBK,Linux的默认编码为UTF-8GBK编码占两个字节,ASCLL编码只占一个字节。GBK编码肯定是能包含ASCCL里面的所有码表。这样做可以统一编码。 在eclipse中编写xml,保存的时候会自动根据文档声明来保存如:<?xml version="1.0" encoding="utf-8"?>//保存文件格式为utf-8项目问题:某一天程序员001从git上拉了一个phone.xml文件到本地,需要修改xml,然后提交上去,phone.xml文件如下,结果第二天系统炸了,请分析是怎么回事?<?xml version="1.0" encoding="utf-8"?><phone> <id>1</id> <dh>15382290136</dh></phone>分析:程序员把项目拉下来后用工具打开文件进行修改,如就是使用记事本编辑,编辑后ctrl+s保存,这个时候保存按照默认编码格式(gbk)保持了,而现在xml中encoding="utf-8",这个时候会导致xml的读取失败或出现乱码问题。这里在修改的时候需要注意,着重看文档声明的编码格式,按文档声明的编码格式保存。[转义字符]在xml中内置了一些特殊字符,这些字符不能直接被浏览器原样输出,如果希望把这些特殊字符按原样输出到浏览器,那就要对这些特殊字符进行转义。特殊字符 转义字符< <缺点:转义书写麻烦[CDATA块]作用:可以让一些需要进行包含特殊字符进行原样输出语法: <![CDATA[ //需要转义的字符 ]]>[处理命令]作用:处理指令用来指挥解析引擎如何解析xml文档内容案例:<?xml-stylesheet type="text/css" href="1.css" ?>1.css如下:phone{ color:red;}//告诉xml解析该xml文档引用哪个css文件需要提取xml内容可以使用xml-stylesheet命令指令//不严谨-严谨HTML --- XML[xml解析] xml文件除了给开发者看,更多情况是让程序去读取xml文件中的内容[解析方式-原理不同]1.DOM解析 : JAXP JDOM Dom4J(默认)2.SAX解析 : Sax解析工具BOM:浏览器对象编程DOM:文档对象编程 javaScript引擎把html文本标签封装成各种对象Xml解析器把解析xml文档时,把xml文件的各个部分内容封装成对象,通过这些对象操作xml文档,这种做法叫DOM解析(DOM编程)Document树:树只有一个根标签,树上的分支,叫节点(Node)节点信息<phone> --Node 节点名称 节点类型:标签节点,属性节点,文本节点,注释节点 标签节点:<name></name> --Element 标签名称 属性节点:<phone id="01"> </phone> --Attribute 属性名称 属性值 文本节点:<name>123456</name> --Text 文本内容xml--->对象--->通过对象去操作xmlDom解析:Document对象,代表一个完整的xml文档通过Document对象就可以得到其下面的其他节点对象,通过节点访问xml文档的内容(标签,属性,文本,注释)[什么是DOM解析]DOM解析原理:xml解析器一次性把整个xml文档加载进内存,然后在内存中年构造成Document的对象,通过Document对象,得到树上节点对象,来通过节点对象访问(操作)到xml文档内容。
阅读全文
1 0
- XML解析原理 | QiuRiMangCao
- Magento 布局(XML)原理解析
- xml基础及其解析原理
- Java解析XML的原理
- SAX解析XML的原理
- Java解析XML的原理
- XML中DOM解析原理
- dom4j解析xml原理详解
- web.xml原理与元素解析
- XML解析器原理及性能比较
- spring 依赖注入xml配置原理解析
- Android:采用SAX解析XML的原理
- 理解SAX解析xml的工作原理
- xml两种解析原理对比
- java解析xml原理方法对比示例,XML基础
- javaWeb-xml解析概述和DOM&SAX解析原理
- java解析xml 之SAX 解析方式原理
- xml之DOM方式解析,DOM4J工具解析原理
- STL之deque双向队列
- Quartz2.2.x官方教程
- HDU_6078 Wavel Sequence 【DP】
- linux irq中断过程解析(基于ARM处理器)
- HDU_6073 Matching In Multiplication 【二分图&&拓扑排序&&DFS】
- XML解析原理 | QiuRiMangCao
- LOJ刷题记录:2006-2011(SCOI2015)
- Qt之模型/视图(实时更新数据)
- Maven本地仓库配置及修改Maven的本地仓库路径
- HDU_6060 RXD and dividing 【DFS】
- LOJ刷题记录:2012-2017(SCOI2016)
- Qt之模型/视图(自定义风格)
- Focal Loss
- 在Windows 系统安装基于Python3.5 版本的Matplotlib库