1、dom解析xml格式的字符串示例本实例为dom解析xml格式的字符串信息/* * * The class QuasiAction. * * explain 由于公司保密要求,敏感信息已经去除(比如:class路径,注释信息,作者,时间等。) * author: XXX * since: * version: $Revision$ $Date$ $LastChangedBy$ * */public class QuasiAction extends MappingDispatchAction private static Log logger = LogFactory.getLog(QuasiA
2、ction.class); /* * explain XXX * param mapping * param form * param request * param response * return ActionRedirect * throws Exception */ public ActionRedirect quasiUpdate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception request.setC
3、haracterEncoding(utf-8); response.setContentType(text/xml;charset=utf-8); PrintWriter out = response.getWriter(); DocumentXmlDeal dxd = new DocumentXmlDeal(); QuasiBean qb = new QuasiBean(); BaseBean bb = new BaseBean(); LegalBean lb = new LegalBean(); IndividualBean ib = new IndividualBean(); Strin
4、g xml = , userCode = ; try xml = request.getParameter(xml名称); if (xml = | xml = null) xml = (String) request.getSession(true) .getAttribute(xml名称); if (xml = | xml = null) throw new Exception(获取参数为空); Document doc = XmlUtil.parseXmlText(xml); Element element = doc.getDocumentElement(); NodeList node
5、list = element.getChildNodes(); for (int i = 0; i nodelist.getLength(); i+) Node nodeOne = nodelist.item(i); if (nodeOne.getNodeType() != Node.ELEMENT_NODE) continue; / 用户账号 if (i = 0) if (userID.equals(nodeOne.getNodeName() if (NULL.equals(nodeOne.getFirstChild() .getNodeValue() throw new Exception
6、(用户账号必须填写,不能为空); else if (nodeOne.getFirstChild().getNodeValue() .indexOf() != -1) throw new Exception(用户账号含有非法字符); qb.setUserID(dxd.forceString(nodeOne.getFirstChild() .getNodeValue(); else throw new Exception( xml格式异常,顶层元素cstmRoot下的第1个子元素-用户账号code元素未找到); /* * 机构代码 */ if (i = 1) if (agencyCode.equa
7、ls(nodeOne.getNodeName() if (NULL.equals(nodeOne.getFirstChild() .getNodeValue() throw new Exception(机构代码必须填写,不能为空); else if (nodeOne.getFirstChild().getNodeValue() .indexOf() != -1) throw new Exception(机构代码含有非法字符); qb.setAgencyCode(dxd.forceString(nodeOne .getFirstChild().getNodeValue(); else throw
8、 new Exception( xml格式异常,顶层元素cstmRoot下的第2个子元素-机构代码agencyCode元素未找到); /* * 同步时间 */ if (i = 2) if (lastSyncTime.equals(nodeOne.getNodeName() if (dxd.checkDateTime(nodeOne.getFirstChild() .getNodeValue() = false) throw new Exception(同步时间格式错误); else if (NULL.equals(nodeOne.getFirstChild() .getNodeValue()
9、throw new Exception(同步时间必须填写); qb.setLastSyncTime(dxd.forceString(nodeOne .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,顶层元素cstmRoot下的第3个子元素-同步时间lastSyncTime元素未找到); /* * 准客户基本信息 */ if (i = 3) if (clientBase.equals(nodeOne.getNodeName() NodeList onelist = nodeOne.getChildNodes();
10、 for (int l = 0; l onelist.getLength(); l+) Node listfour = onelist.item(l); if (listfour.getNodeType() != Node.ELEMENT_NODE) continue; /* * 客户编号 */ if (l = 0) if (code.equals(listfour.getNodeName() if (!NULL.equals(listfour.getFirstChild() .getNodeValue() if (listfour.getFirstChild() .getNodeValue(
11、).indexOf() != -1) throw new Exception( 准客户基本信息的客户编号含有非法字符); bb.setCode(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第1个子元素-客户编号code元素未找到); /* * 客户名称 */ if (l = 1) if (name.equals(listfour.getNodeName() if (listfour.getFirstChild
12、().getNodeValue() .indexOf() != -1) throw new Exception( 准客户基本信息的客户名称含有非法字符); bb.setName(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第2个子元素-客户名称name元素未找到); /* * 移动电话(手机号码) */ if (l = 2) if (phone.equals(listfour.getNodeName() if
13、 (NULL.equals(listfour.getFirstChild() .getNodeValue() throw new Exception(准客户基本信息的移动电话必须填写); else if (dxd.isPhone(listfour .getFirstChild().getNodeValue() = false) throw new Exception(移动手机号码格式错误); else if (listfour.getFirstChild() .getNodeValue().indexOf() != -1) throw new Exception( 准客户基本信息的电话号码含有
14、非法字符); else if (dxd.isNumber(listfour .getFirstChild().getNodeValue() = false) throw new Exception(准客户基本信息的电话号码不合法); bb.setPhone(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第3个子元素-移动电话phone元素未找到); /* * 客户性质(个人/法人) */ if (l = 3)
15、if (attribute.equals(listfour.getNodeName() if (0.equals(listfour.getFirstChild() .getNodeValue() | 1.equals(listfour .getFirstChild() .getNodeValue() bb.setAtribute(dxd .forceString(listfour .getFirstChild() .getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第4个子元素-客户性质attri
16、bute元素未找到); /* * 客户类型 */ if (l = 4) if (clientType.equals(listfour.getNodeName() bb.setClientType(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第5个子元素-客户类型clientType元素未找到); /* * 其它电话 */ if (l = 5) if (telephone.equals(listfour.get
17、NodeName() if (!NULL.equals(listfour.getFirstChild() .getNodeValue() if (dxd .isNumber(listfour .getFirstChild() .getNodeValue() = false) throw new Exception( 准客户基本信息的其它电话含有不法字符); bb.setTelephone(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素
18、clientBase下的第6个子元素-其它电话telephone元素未找到); /* * 生日(yyyy-MM-dd) */ if (l = 6) if (birthday.equals(listfour.getNodeName() if (!NULL.equals(listfour.getFirstChild() .getNodeValue() if (dxd .checkDate(listfour .getFirstChild() .getNodeValue() = false) throw new Exception( 准客户基本信息的生日日期格式错误); bb.setBirthday(
19、dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第7个子元素-生日birthday元素未找到); /* * 传真 */ if (l = 7) if (fax.equals(listfour.getNodeName() bb.setFax(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式
20、异常,准客户基本信息中,父元素clientBase下的第8个子元素-传真fax元素未找到); /* * 电子邮件 */ if (l = 8) if (email.equals(listfour.getNodeName() if (!NULL.equals(listfour.getFirstChild() .getNodeValue() if (dxd.isMail(listfour.getFirstChild() .getNodeValue() = false) throw new Exception( 准客户基本信息的电子邮件格式异常); bb.setEmail(dxd.forceStrin
21、g(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第9个子元素-电子邮件email元素未找到); /* * 网址(博客等) */ if (l = 9) if (site.equals(listfour.getNodeName() bb.setSite(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本
22、信息中,父元素clientBase下的第10个子元素-网址site元素未找到); /* * 附注 */ if (l = 10) if (remark.equals(listfour.getNodeName() bb.setRemark(dxd.forceString(listfour .getFirstChild().getNodeValue(); else throw new Exception( xml格式异常,准客户基本信息中,父元素clientBase下的第11个子元素-附注remark元素未找到); else throw new Exception( xml格式异常,顶层元素cstmRoot下的第4个子元素-准客户基本信息clientBase元素未找到); if (0.equals(bb.getAtribute() if (i = 4) /*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1