Java(XML,正则,Dom解析)

目录

一.XML的语法

二.Dom解析


一.XML的语法

XML:是一个可扩展的标记语言。

a.文档声明,固定格式  :
b.元素:
 *          i.元素名是区分大小写的
 *          ii.元素名最好用数字+字母+"-",其他的分号,逗号,冒号最好别用
 *          iii.一个元素一般有 开始元素,元素体,结束元素组成,元素体可以是普通内存,可以是其他标签
 *          iV.如果一个元素没有元素体,可以写成如下格式: <标签名/>
 *          V.一个标准的XML文件,只有一个根标签
c.属性:
 *          i.属性的格式:
 *              属性名="属性值"
 *          ii.属性的位置:
 *              必须写在开始标签中
 *          iii.属性的个数
 *              可以不写,可以多个,但是不能有重名的属性

使用DTD约束编写XML
 *          ?: 表示该标签出现的次数 是0或者1,非贪婪匹配
 *          *: 表示该标签出现的次数 任意次
 *          +: 表示该标签出现的次数 >=1
 *          |: 表示多个标签选一个出现
 *          ,: 表示多个标签必须按照先后顺序出现

补充正则表达式:

次数符号

      * 0或多次
      + 1或多次
      ?0或1次
      {n} 恰n次
      {n,m} 从n到m次

其他符号

             符号 等价形式

      \d      [0-9]
      \D      [^0-9]  
      \w      [a-zA-Z_0-9]
      \W      [^a-zA-Z_0-9]
      \s      [\t\n\r\f]
      \S      [^\t\n\r\f]
      .       任何字符

边界匹配器

           行开头 ^行结尾 $单词边界 \b

模式和匹配器的典型调用次序

  1. 正则表达式编译到模式中Pattern p = Pattern.compile("a*b");

  2. 创建给定输入与此模式的匹配器Matcher m = p.matcher("aaab");

  3. 尝试将整个区域与此模式匹配boolean b = m.matches();

二.Dom解析

Dom解析的原理:
 *     将整个XML文件 加载到内存,为我们生成一个Document类型的对象

ps:使用Dom4J的API解析XML文件


1.把整个要解析的XML文件加载到内存
 *         Dom4J提供了一个核心类,用来加载XML文件  SAXReader
2.会生产一个Documnet对象
 *         SAXReader中有一个方法
 *         public Document read(File/InputStream/Reader);
3.通过Document对象获取根标签
 *         public Element getRootElement();
4.用以下方法获取标签属性
 *             public String attributeValue("属性名")    
5.获取根标签的子标签:得到是集合
 *             public List elements();//获取该标签的所有子标签
 *             public List elements(String name);//获取该标签的所有叫做name的子标签
 *             public Element element();//获取该标签的第一个子标签
 *             public Element element(String name);//获取该标签的第一个叫做name的子标签

你可能感兴趣的:(java)