dom4j解析String门类的xml
StringBuffer str = new StringBuffer();
str.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
.append("<Request xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"Request.xsd\">")
.append("<Header><RequestApp Name=\"AppName\"/></Header>")
.append("<Body><Data>")
.append("<Cell Name=\"edDeptID\" Value=\"2\" Annotation=\"部门ID\" DataType=\"int\"/>")
.append("<Cell Name=\"ou\" Value=\"11\" Annotation=\"组织机构代码\" DataType=\"string\"/>")
.append("<Cell Name=\"edUnitCode\" Value=\"21\" Annotation=\"单位编码\" DataType=\"int\"/>")
.append("<Cell Name=\"edName\" Value=\"31\" Annotation=\"部门全称\" DataType=\"string\"/>")
.append("<Cell Name=\"edDisplayName\" Value=\"41\" Annotation=\"部门简称\" DataType=\"string\"/>")
.append("<Cell Name=\"edMail\" Value=\"\" Annotation=\"电子邮件\" DataType=\"string\"/>")
.append("<Cell Name=\"postalAddress\" Value=\"\" Annotation=\"通讯地址\" DataType=\"string\"/>")
.append("<Cell Name=\"postalCode\" Value=\"71\" Annotation=\"邮政编码\" DataType=\"string\"/>")
.append("<Cell Name=\"telephoneNumber\" Value=\"81\" Annotation=\"部门办公电话\" DataType=\"string\"/>")
.append("<Cell Name=\"facsimileTelephoneNumber\" Value=\"9\" Annotation=\"部门传真号码\" DataType=\"string\"/>")
.append("<Cell Name=\"edOrder\" Value=\"1\" Annotation=\"排序号\" DataType=\"int\"/>")
.append("<Cell Name=\"edSuperDepartment\" Value=\"111\" Annotation=\"上级部门ID\" DataType=\"int\"/>")
.append("<Cell Name=\"edIsLeaf\" Value=\"1\" Annotation=\"是否页节点\" DataType=\"string\"/>")
.append("<Cell Name=\"edRemark\" Value=\"1\" Annotation=\"备注\" DataType=\"string\"/>")
.append("<Cell Name=\"edStatus\" Value=\"1\" Annotation=\"状态\" DataType=\"int\"/>")
.append("</Data><Data>")
.append("<Cell Name=\"edDeptID\" Value=\"1\" Annotation=\"部门ID\" DataType=\"int\"/>")
.append("<Cell Name=\"ou\" Value=\"1\" Annotation=\"组织机构代码\" DataType=\"string\"/>")
.append("<Cell Name=\"edUnitCode\" Value=\"1\" Annotation=\"单位编码\" DataType=\"int\"/>")
.append("<Cell Name=\"edName\" Value=\"1\" Annotation=\"部门全称\" DataType=\"string\"/>")
.append("<Cell Name=\"edDisplayName\" Value=\"1\" Annotation=\"部门简称\" DataType=\"string\"/>")
.append("<Cell Name=\"edMail\" Value=\"1\" Annotation=\"电子邮件\" DataType=\"string\"/>")
.append("<Cell Name=\"postalAddress\" Value=\"1\" Annotation=\"通讯地址\" DataType=\"string\"/>")
.append("<Cell Name=\"postalCode\" Value=\"1\" Annotation=\"邮政编码\" DataType=\"string\"/>")
.append("<Cell Name=\"telephoneNumber\" Value=\"1\" Annotation=\"部门办公电话\" DataType=\"string\"/>")
.append("<Cell Name=\"facsimileTelephoneNumber\" Value=\"1\" Annotation=\"部门传真号码\" DataType=\"string\"/>")
.append("<Cell Name=\"edOrder\" Value=\"1\" Annotation=\"排序号\" DataType=\"int\"/>")
.append("<Cell Name=\"edSuperDepartment\" Value=\"1\" Annotation=\"上级部门ID\" DataType=\"int\"/>")
.append("<Cell Name=\"edIsLeaf\" Value=\"\" Annotation=\"是否页节点\" DataType=\"string\"/>")
.append("<Cell Name=\"edRemark\" Value=\"1\" Annotation=\"备注\" DataType=\"string\"/>")
.append("<Cell Name=\"edStatus\" Value=\"1\" Annotation=\"状态\" DataType=\"int\"/>")
.append("</Data></Body></Request>");
以上是xml文件
下面是具体实现解析xml
package WebService; import java.io.StringReader; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import com.srit.entity.local.SysOrganEntity; /** * 解析组织机构xml * @author LP * */ public class OrgganGetInfoFromXml { /** * 解析组织机构xml * @param deptXML xml格式的字符串 * @return 组织结构数据集 */ public static List<SysOrganEntity> getSysOrggans(String deptXML){ SAXReader saxReader = new SAXReader(); Document document = null; try{ document = saxReader.read(new StringReader(deptXML)); }catch(DocumentException e){ e.printStackTrace(); return null; } Element root = document.getRootElement(); List<SysOrganEntity> list = new ArrayList(); // 获取组织结构组 List orgganNodes = root.selectNodes("/Request/Body/Data"); for (Iterator i = orgganNodes.iterator(); i.hasNext();) { Element Datas = (Element) i.next(); List cells = Datas.selectNodes("Cell"); SysOrganEntity orggan = new SysOrganEntity(); for (Iterator c = cells.iterator(); c.hasNext();) { Element cell = (Element) c.next(); if(cell.attributeValue("Name").equals("edDeptID")) { //部门ID if(!"".equals(cell.attributeValue("Value"))&& cell.attributeValue("Value") != null) orggan.setOrg_id(Integer.valueOf(cell.attributeValue("Value"))); }else if(cell.attributeValue("Name").equals("ou")) { //组织机构代码 orggan.setOrg_code(cell.attributeValue("Value")); }else if(cell.attributeValue("Name").equals("edName")) { //部门全称 orggan.setOrg_name(cell.attributeValue("Value")); }else if(cell.attributeValue("Name").equals("edSuperDepartment")) { //上级组织机构编号 orggan.setSuper_org_id(Integer.valueOf(cell.attributeValue("Value"))); }else if(cell.attributeValue("Name").equals("edDisplayName")) { //部门简称 orggan.setOrg_short_name(cell.attributeValue("Value")); }else if(cell.attributeValue("Name").equals("edStatus")) { //状态 if(!"".equals(cell.attributeValue("Value"))&& cell.attributeValue("Value") != null) orggan.setStatus(Integer.valueOf(cell.attributeValue("Value"))); }else if(cell.attributeValue("Name").equals("edOrder")) { //排序号 if(!"".equals(cell.attributeValue("Value"))&& cell.attributeValue("Value") != null) orggan.setDisplay_serial(Integer.valueOf(cell.attributeValue("Value"))); }else if(cell.attributeValue("Name").equals("edMail")) { //电子邮件 orggan.setEmail_address(cell.attributeValue("Value")); }else if(cell.attributeValue("Name").equals("postalAddress")) { //联系地址 orggan.setContact_address(cell.attributeValue("Value")); }else if(cell.attributeValue("Name").equals("postalCode")) { //邮政编码 orggan.setPost_code(cell.attributeValue("Value")); }else if(cell.attributeValue("Name").equals("telephoneNumber")) { //联系电话 orggan.setContact_phone(cell.attributeValue("Value")); }else if(cell.attributeValue("Name").equals("facsimileTelephoneNumber")) { //传真号码 orggan.setFax_phone(cell.attributeValue("Value")); } } list.add(orggan); } return list; } public static String returnXmlMsg(String msg,int rs){ StringBuffer str = new StringBuffer(); str.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>") .append("<Response>") .append("<Result ErrMsg=\""+ msg +"\" Value=\""+ rs +"\"/>") .append("</Response>"); return str.toString(); } }