Java中如何对多节点的xml文档进行dom解析

出至CSDN社区:如下XML文档:首先我知道如何解析如hd节点下的code,desc,pid的属性值,但如果是bd下的节点data(因为服务器返回给我的data节点不是每次都有的)而且对于data节点下的嵌套节点usd节点下的属性怎么获取,并且怎么判断是否有data节点,望各位熟悉的指点下,对NodeList,Node和XML的格式做些介绍解释,等我明白了,我会整理一份教程心得,并签上XX指导,谢谢,本人是做J2me的,对XML的解析不是太熟悉,API看的不太明白,我用的是javax.xml.parsers和org.w3c.dom包.
XML code
    
    
    
    
<? xml version="1.0" encoding="UTF-8" ?> < res > < hd > <!-- 通用请求结果说明信息 --> < code > 0|1 </ code > <!-- 请求结果:0、失败,1、成功 --> < desc > sucess|其它描述内容 </ desc > < pid > 11 </ pid > <!-- 协议ID --> </ hd > < bd > < data > <!-- 版本数据处理(非必有) --> < usd > <!-- 新域名处理 --> < id > 0 </ id > <!-- 序号 --> < dn > http://wap.133.cn </ dn > <!-- 新域名 --> < usd > < udv > <!-- 更新客户端数据版本号 --> < id > 1 </ id > <!-- 序号 --> < dn > 2.0 </ dn > <!-- 新客户端数据版本号 --> < udv > < uud > <!-- 用户ID更新 --> < id > 2 </ id > <!-- 序号 --> < uid > 11001 </ uid > <!-- 新用户id --> < uud > < uct > <!-- 城市数据更新 --> < id > 3 </ id > <!-- 序号 --> < to > 0|1 </ to > <!-- 0.替换,1.增加 --> < ls > <!-- 城市列表 --> < it > < n > 北京 < n /> <!-- 城市中文名 --> < p > BEIJING < p /> <!-- 城市拼音编码 --> < j > BJ < j /> <!-- 城市简拼编码 --> < s > PEK < s /> <!-- 三字码 --> </ it > ...... </ ls > < uct > < utm > <!-- 航班时段更新 --> < id > 4 </ id > <!-- 序号 --> < to > 0|1 </ to > <!-- 0.替换,1.增加 --> < ls > <!-- 航班时段列表 --> < it > < i > 4 < i /> <!-- 数据编号 --> < n > 不限 < n /> <!-- 名称 --> </ it > ...... </ ls > < utm > < uac > <!-- 航空公司更新 --> < id > 5 </ id > <!-- 序号 --> < to > 0|1 </ to > <!-- 0.替换,1.增加 --> < ls > <!-- 航空公司列表 --> < it > < i > CA < i /> <!-- 航空公司简码 --> < n > 中国国际航空公司 < n /> <!-- 航空公司名称 --> </ it > ...... </ ls > < uac > < ucb > <!-- 舱位信息更新 --> < id > 6 </ id > <!-- 序号 --> < to > 0|1 </ to > <!-- 0.替换,1.增加 --> < ls > <!-- 舱位列表 --> < it > < i > 0 < i /> <!-- 舱位ID --> < n > 经济舱 < n /> <!-- 舱位名称 --> </ it > ...... </ ls > < ucb > < ucd > <!-- 证件信息更新 --> < id > 7 </ id > <!-- 序号 --> < to > 0|1 </ to > <!-- 0.替换,1.增加 --> < ls > <!-- 证件信息列表 --> < it > < i > 0 < i /> <!-- 证件信息简码 --> < n > 身份证 < n /> <!-- 证件信息名称 --> </ it > ...... </ ls > < ucd > < ucv > <!-- 客户端更新 --> < id > 8 </ id > <!-- 序号 --> < cvt > 版本更新 </ cvt > <!-- 标题 --> < cvc > 系统检测到当前有新版本,是否立即更新? </ cvc > <!-- 内容 --> < url > http://wap.133.cn/Fly.jar </ url > <!-- 下载地址 --> < ucv > < uoc > <!-- 订票电话更新 --> < id > 9 </ id > <!-- 序号 --> < to > 0|1 </ to > <!-- 0.替换,1.增加 --> < ls > <!-- 订票电话列表 --> < it > < i > 0 < i /> <!-- 订票电话ID --> < tel > 4008158888 < tel /> <!-- 订票电话 --> < n > 中航信 < n /> <!-- 订票代现名称 --> </ it > ...... </ ls > < uoc > </ data > < fly > <!-- 航班信息 --> < code > 0|1 </ code > <!-- 查询结果0.失败,1.成功 --> < num > 47 </ num > <!-- 航班总数 --> < pub > PEK,SHA,2009,05,27 </ pub > <!-- 公共参数:详情的para1值 --> < fm > 2,10,1,0,0,0,2,0,0,0,3,0,0,0,4,0,01,01,250,01,01,01,5,0,0,0,6,0,0,0,7,0,1,1,250,1,1,1,0,8,0,0,0,9,0,0,0 </ fm > <!-- 配色方案 --> <!-- 配色方案说明(对应里面的内容):方案数,要显示的字段数(包括换行控制),要显示的字段号(对应下面标签<it>里面数据的id号),文字大小控制(备用)、颜色方案1,颜色方案2(颜色方案非零用三位表示,比方4后面的01,01,250,为颜色方案1)......除掉这些外,如果遇到数字0便视为换行控制(因为0号ID不可能作为显示字段,被用作返回参数了),实际返回中“,”号将会被空格(\t)取代。 --> < ls > < it > < d id ="0" > CA984,321,0,0720,0930,PEK,PVG,Q,6.7,770,4 </ d > <!-- 详细数据:详情的para2值 --> < d id ="1" > 国航 </ d > <!-- 航空公司简称 --> < d id ="2" > CA984 </ d > <!-- 航班号 --> < d id ="3" > 09:30 </ d > <!-- 起飞时间 --> < d id ="4" > 770 </ d > <!-- 机票价格 --> < d id ="5" > 6.7折 </ d > <!-- 折扣 --> < d id ="6" > 北京首都国际机场 </ d > <!-- 起飞机场名 --> < d id ="7" > 上海浦东机场 </ d > <!-- 到达机场名 --> < d id ="8" > 321 </ d > <!-- 机型 --> < d id ="9" > 9 </ d > <!-- 票数:0~9或9张以上 --> < f > 1 </ f > <!-- 选用哪套格式化方案 --> </ it > ...... </ ls > </ fly > < bd > </ res >

你可能感兴趣的:(java,xml,网络,dom,休闲)