tomcat解析(六)Digester(二)startElement

在用SAX对XML进行解析时,需要设置相应的ContentHandler实现,该对象将用于响应各种xml解析的事件,如开始标签时会调用其StartElement方法,遇到标签体时会调用其characters方法,而结束标签会调用其eneElement方法,我们可以看到Digester便是继承了DefaultHandler类,而该类则实现了ContentHandler接口,因此当我们调用digester.parse对相应的xml文件进行解析时,Digester类的这几个方法便会执行,本文先粗略地看一下startElement的实现,如下:
     

startElement方法有四个参数,分别为命名空间,两个标签路径名加一个标签属性对象,下面我们先简单地介绍一下startElement方法里的内容
1.更新属性中的系统值引用
updateAttributes(list)主要是用于将属性值中以${}标示的系统属性值转换为真正的值,使用的属性均从System.getProperty获取
2.初始化标签体内容
bodyText是Digester挂有的一个用于存放标签体内容的StringBuffer对象,当解析开始标签时应该还没有标签体内容的,因此这里给了一个空的StringBuffer对象,后又将bodyText放入到bodyTexts(一个ArrayStack)里
3.获取路径名
此处将标签的路径字符赋给name,XML格式如:<Servers><Server><Server></Servers>,当解析到<Server>标签时路径则为Servers/Server,在得到路径后又将该路径赋予match变量;
4.得到与标签体路径名匹配的Rule List,触发其begin方法

这部分内容是tomcat解析xml的重要部分,将等到characters及endElement方法讲解完后一起进行说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值