Java(XML,正则,Dom解析)

目录

一.XML的语法

二.Dom解析


一.XML的语法

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

a.文档声明,固定格式  :<?xml version="1.0" encoding="UTF-8"?>
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<Element> elements();//获取该标签的所有子标签
 *             public List<Element> elements(String name);//获取该标签的所有叫做name的子标签
 *             public Element element();//获取该标签的第一个子标签
 *             public Element element(String name);//获取该标签的第一个叫做name的子标签

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值