用dom4j解析报文,获取节点属性或者值

为了以后方便查看,话不多说,直接上代码了

package com.yzj.sisbase.webservice.test;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class TestXml {
	 public static void main(String[] args){
		 String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><BatchBean MODEL_CODE=\"YYXT_BATCH\" IS_UNITED_ACCESS=\"false\" IS_SUNECM_COSOLE=\"false\" IS_BREAK_POINT=\"false\" IS_DOWNLOAD=\"false\">  <index_Object CONTENT_STATUS=\"1\" SERVER_ID=\"1\" UPLOAD_USER=\"yyxt\" CONTENT_ID=\"20191207_2_55_299E2F85-04EE-1082-249A-1CC6E8FDD349-1\" MIGRATION_STATUS=\"1\" UPLOAD_TIME=\"20191207012311\" VERSION=\"1\" MAX_VERSION=\"1\" GROUP_ID=\"1\" GROUP_NAME=\"影像服务器组\">    <customMap>      <CREATEDATE><string>20181121</string></CREATEDATE>      <UPDATE_TIME><string>20191207012311</string></UPDATE_TIME>      <BUSI_SERIAL_NO><string>20181121111131</string></BUSI_SERIAL_NO>    </customMap>  </index_Object>  <document_Objects>    <BatchFileBean FILE_PART_NAME=\"YYXT_IMAGE\">      <files>        <FileBean VERSION=\"1\" UPLOAD_TIME=\"20191207012311\" FILE_FORMAT=\"jpg\" FILE_NO=\"D899DD39-6263-B31A-22C7-97F71F6BBA97\" SAVE_NAME=\"D899DD39-6263-B31A-22C7-97F71F6BBA97\" CONTENT_ID=\"20191207_2_55_299E2F85-04EE-1082-249A-1CC6E8FDD349-1\" FILE_STATUS=\"1\" OPTION_TYPE=\"1\" FILE_SIZE=\"4090\" SERVER_ID=\"1\" GROUP_ID=\"1\" URL=\"http://10.10.36.24:9084/SunECMDM/servlet/getFile?s/lV3bcibQjUge2CCtrHE8h3F/Jh74A+h7uXhnCE/Rgl1L/n1y4dUCaamwl4hhW0SiHj9PmfdpHi3a7u18wax/5Ikf318cfaoaJILDOOce3EMWtoqSc13coytcyShC1un63oo3HFuFUL0Xg6DblBtO+tBQNlv7QFEA5oHeLLivl15WxLB2kQoTZc0CrDMtlwcADOltNnS07MFIZ1sjTUeqJkNc3lsdI2QtES5KzdrEgEMoNKvCha0WHpppnnXylhQTgJARmo7MhZ94gPh4PQpdOoxIHL7X+1d+VgJEd+449s8Kp1H5VphLHxifYHN8C14731y0whl6tH/L6WNUQrBQ5dm/MZe0lI7jAAnS6Rq/wVEFR2di7E7iTVj6woDojJUd9IKJZGsAc=\">          <otherAtt>            <UPDATE_TIME><string>20191207012311</string></UPDATE_TIME>            <FILEFACE><string>1</string></FILEFACE>          </otherAtt>        </FileBean>      </files>    </BatchFileBean>  </document_Objects></BatchBean></root>";
			Document document;
			try {
				document = DocumentHelper.parseText(xml);
				Element root=document.getRootElement();
				System.out.println(root.getName());
				List<Element> elementList=root.elements("BatchBean"); //获得根元素下所有指定的子节点
				Element element = elementList.get(0);
				System.out.println(element.getName());
				//.element("<BatchFileBean ").element("files").element("<FileBean");
				//element不支持一次写多个,比如上面那样,只能一个个得到
				Element docObj=element.element("document_Objects");
				Element docObj2=docObj.element("BatchFileBean");
				Element docObj3=docObj2.element("files");
				Element docObj4=docObj3.element("FileBean");
				//Element docObj5=docObj4.element("BatchFileBean");
				
				System.out.println(docObj4.getName());
				String  url = docObj4.attributeValue("URL");//获取子节点属性的值
				System.out.println("URL>>>"+url);
				//elementTextTrim 获取节点的值
				/*System.out.println(element.elementTextTrim("writeuser"));
				System.out.println(element.elementTextTrim("title"));
				System.out.println(element.elementTextTrim("issstatus"));
				System.out.println(element.elementTextTrim("newsid"));*/
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 
	 }
}

运行的结果

猜你喜欢

转载自blog.csdn.net/weixin_42189604/article/details/84338664
今日推荐