XML常用知识点
来源:互联网 发布:50知天命60耳顺 编辑:程序博客网 时间:2024/06/08 19:19
XML
XML(Extendsible Markup Language)是一种可扩展的标签语言.
它的标签可以根据需求自定义,和Html不相同,XML的标签既可以用中文,也可以用英文.
1.XML的作用:
- 1_存储数据,在没有真正的数据库的前提下,当作小型的数据库用
- 2_数据传递,在服务端创建XML文件,以IO流的方式传输到客户端,客户端拿到后,提取出XML文件中
- 3_软件配置,XML可以配置软件信息,如:JavaEE应用中的web.xml,重要
2.XML的基本语法:
一个XML文件,加载到内存后,会形成一个倒状的树结构,XML文件内容越多,耗用的内存也就越大
DOM树:
- Document:文档节点,只有一个
- Element:元素节点,标签
- Attribute:属性节点,标签的属性
- Text:文本节点,标签里的内容
- Comment:注释节点
1.文档声明
就是XML文件中第一行代码:
<?xml version="1.0" encoding="UTF-8"?>
version=”1.0”表示解析XML时,采用的版本号,
XML可以用浏览器解析,因为浏览器内置XML解析器,让浏览器采用XML1.0,
版本的解析器来解析,目前1.0最为常用
encoding=”UTF-8”表示解析XML时,采用什么样的解码方式,
注意:文档声明前,不要有空行,空格,注释
2.元素节点
XML中的元素,就是标签,通常情况下,标签有开始就有结束,如果标签无文本的话,就可以简写,但不能乱嵌套,大小写敏感.元素名称做到见名知意,HTML标签是有含义的.
3.属性节点
属性是对标签的附加说明,只出现在开始标签中
4.注释
XML中的注释,注释是给程序员看的,XML解析器忽略,不能注释嵌套,
5.CDATA字符数据段/区
<sql语句> <findUser> <![CDATA[ select * from user where age>30; ]]> </findUser></sql语言>
让XML不按照XML本身的语法来约束,即不将<符号看作是标签的一个部分,而就不报错了
6.转义字符
XML中的转义字符,
>– >,
< – < ;
7.处理指令(了解)
结合css技术,可以读取XML文件中内容,并显示在浏览器
3.XML约束
用于约束XML如何书写的一种技术,这个技术就叫约束模式
约束模式有二个大类别:
- 1-DTD,易学易用,采用DTD语法,功能有限
- 2-Schema,相对难学难用,采用XML语法,功能强大
DTD约束:
<!ELEMENT bookstore (book)><!ELEMENT book (title,author,price)><!ELEMENT title (#PCDATA)><!ELEMENT author (#PCDATA)><!ELEMENT price (#PCDATA)>
DTD不能独立存在,必须嵌入到XML中才有效,
嵌入方式有两大类:
1_内部方式:DTD和XML在同一个XML文件中
2_外部方式:DTD和XML在不同的文件中,一个在XML中,一个在DTD中,最后通过
01:引用外部本地的DTD,即DTD文件就在你的pc上,
02:引用外部远程的DTD,即DTD文件不在你的pc上,
Schema约束:
Schema,相对难学难用,采用XML语法,功能强大,spring框架,struts2框架,都采用Schema来约束XML文件.
名称空间
为了解决相同属性名,来区分不同的包,我们可以使用名称空间namespace来解决这个问题
c:前缀
for标签
c来自于如:www.baidu.com这个名称空间
标签可以来自于名称空间,属性一样可以来自名称空间
4.XML解析介绍
提取XML文件中对应用有用的数据的过程叫XML解析
有两大类解析方式:
- 1.DOM[Document Object Model]方式:
特点:一次性将XML文件,由硬盘加载到内存,形成一倒状结构
优点:速度快,从顶向下解析缺点:费内存
W3C组件推荐
- 2.SAX[Simple Api for XML]方式:
特点:不是一次性将XML文件加载到内存,无倒状树结构,而是多次加载
优点:不费内存缺点:相对费时
DOM4J解析XML
//创建InputStream,让其指向src/book.xml文件 InputStream is = Demo01.class.getClassLoader().getResourceAsStream("book.xml"); //创建dom4j解析器对象 SAXReader saxReader = new SAXReader(); //加载硬盘上的xml文件到内存,形成一个倒状的树结构 Document xmlDocument = saxReader.read(is); //获取根节点 Element rootElement = xmlDocument.getRootElement(); //System.out.println("根节点:" + rootElement.getName()); //从根节点开始,查询下面所有的<图书>子节点 List<Element> list = rootElement.elements("图书"); //System.out.println("共有" + list.size() + "本图书"); for(Element bookElement : list){ //获取<图书>标签中编号属性值 String id = bookElement.attributeValue("编号"); //获取<图书>标签的子标签<标题>中的内容 String title = bookElement.element("标题").getText().trim(); String author = bookElement.element("作者").getText().trim(); String price = bookElement.element("售价").getText().trim(); System.out.println(id); System.out.println(title); System.out.println(author); System.out.println(price); }
XPath的使用
Xpath是一个结合DOM4J使用的技术,XPath能够根据字符串,快速定位符合条件的标签
用dom4j+xpath技术,快速定位xml文件中的标签,并取出内容,
导入dom4j中xpath的jar包到classpath中去,
xpath也属于dom4j技术
//第一个/表示xml文件,其它/表示分隔符; String xpath = "/电视/a/b/c/d";Element dElement = (Element) xmlDocument.selectStringleNOde();List<Element> list = xmlDocument.selectNodes(xpath);
- XML常用知识点
- XML知识点
- xml知识点
- XML知识点
- xml知识点
- 常用知识点
- 常用知识点
- Ext常用的知识点(三)--combobox和xml的绑定
- XML相关知识点
- ajax、xml知识点
- XML基础知识点
- XML的相关知识点
- XML基础知识点记录
- XML相关知识点
- 有关XML的知识点
- android读写xml知识点
- xml简单知识点
- XML的基本知识点
- 从两边向中间依次靠拢打印一个字符串
- 个人反省
- WIN32汇编学习笔记(一)
- 2016.12.1流水
- Java Integer Cache
- XML常用知识点
- Unity Shader-Phong光照模型与Specular
- HTML5之全局属性
- 同步 异步 阻塞 非阻塞
- jquery获取所有选中的checkbox
- arduino的一些初级函数
- Linux启动过程详解
- ListView自定义适配器
- RC4算法实现