张晨的个人博客

使用jdom解析XML字符串

张晨的个人博客2014-05-23Java技术 2350 1A+A-
一、 例1

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.xml.sax.InputSource;

public class Test {

	public static void main(String[] args) throws Exception {
//拼接xml格式其中notify节点是不固定数量的		
String xml="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
  + "<notifyBusiness>"
	+ "<notify>"
		+ "<busiId>373394</busiId>"
		+ "<busiNo>000324232214319</busiNo>"
		+ "<busiTime>2013-04-10 09:52:20</busiTime>"
		+ "<notifyId>3745</notifyId>"
		+ "<para1></para1>"
		+ "<para2>319</para2>"
		+ "<para3></para3>"
		+ "<para4></para4>"
		+ "<para5>1110000</para5>"
		+ "<notifyType>10</notifyType>"
	+ "</notify>"
	+ "<notify>"
		+ "<busiId>12345</busiId>"
		+ "<busiNo>482892842822</busiNo>"
		+ "<busiTime>2013-04-10 09:52:20</busiTime>"
		+ "<notifyId>3745</notifyId>"
		+ "<para1></para1>"
		+ "<para2>319</para2>"
		+ "<para3></para3>"
		+ "<para4></para4>"
		+ "<para5>1110000</para5>"
		+ "<notifyType>10</notifyType>"
	+ "</notify>"
  + "</notifyBusiness>";
	System.out.println(xml);

	StringReader read = new StringReader(xml);
	InputSource source = new InputSource(read);
	SAXBuilder sb = new SAXBuilder();
	
	 Document doc = sb.build(source);
	 Element root = doc.getRootElement();
	 List jiedian = root.getChildren("notify");
	 Element xxx = null;
	 for (int i = 0; i < jiedian.size(); i++)
		{
		xxx = (Element) jiedian.get(i);
		String busiId = xxx.getChild("busiId").getText();
		String busiNo = xxx.getChild("busiId").getText();
		String busiTime = xxx.getChild("busiTime").getText();
		String notifyId = xxx.getChild("notifyId").getText();
		String para1 = xxx.getChild("para1").getText();
		String para2 = xxx.getChild("para2").getText();
		String para3 = xxx.getChild("para3").getText();
		String para4 = xxx.getChild("para4").getText();
		String para5 = xxx.getChild("para5").getText();
		String notifyType = xxx.getChild("notifyType").getText();
		System.out.println(busiId+busiNo+busiTime+notifyId);
		}
		
	}
}   


二、 例2

import java.io.IOException;
import java.io.StringReader;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class Test2 {
	
	public static void main(String[] args) throws Exception {
//拼接xml字符串
String xml = 
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+"<TXLife>"
+"<TXLifeResponse>"
+"<transExeDate>2014-05-14</transExeDate>"
+"<transExeTime>15:28:22</transExeTime>"
+"<transType>104</transType>"
+"<transMode>14</transMode>"
+"<transRefGUID>b5b7f4a6-0971-4b86-9ca7-ed30fc09dfe6</transRefGUID>"
+"<transResult>"
+"<resultCode>2</resultCode>"
+"<resultInfo>错误描述</resultInfo>"
+"</transResult>"
+"</TXLifeResponse>"
+"</TXLife>";

	StringReader read = new StringReader(xml);
	InputSource source = new InputSource(read);
	SAXBuilder sb = new SAXBuilder();
	
	Document doc = sb.build(source);
	Element root = doc.getRootElement();
	Element xxx = root.getChild("TXLifeResponse");
	String transExeDate = xxx.getChild("transExeDate").getText();
	String transExeTime = xxx.getChild("transExeTime").getText();
	String transType = xxx.getChild("transType").getText();
	String transMode = xxx.getChild("transMode").getText();
	String transRefGUID = xxx.getChild("transRefGUID").getText();
	Element transResult = 	xxx.getChild("transResult");
	String resultCode = transResult.getChild("resultCode").getText();
	String resultInfo = transResult.getChild("resultInfo").getText();

System.out.println(transExeDate+transExeTime+resultCode+resultInfo);
	}
     }


两个非常简单的使用jdom解析xml的方法,差不多可以适用各种xml情况了~

 

文章关键词
xml
jdom
发表评论