Java解析xml格式数据

解析xml格式数据需要先引入jdom架包


package com.cn;

import java.io.IOException;
import java.io.StringReader;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
/**
 * 解析xml格式字符串的数据
 * @author menglongyin 2017年6月22日
 */

public class DuXMLDoc {

/**

* 解析xml格式数据

* @param xmlDoc:xml格式的字符串
* @return
* @throws IOException 
* @throws JDOMException 
*/
public static Map xmlElements(String xmlDoc) throws JDOMException, IOException {
// 创建一个新的字符串
StringReader read = new StringReader(xmlDoc);
// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source = new InputSource(read);
// 创建一个新的SAXBuilder
SAXBuilder sb = new SAXBuilder();


// 通过输入源构造一个Document
Document doc = sb.build(source);
// 取的根元素
Element root = doc.getRootElement();
// 得到根元素所有子元素的集合
List jiedian = root.getChildren();
Element et = null;
Map resultMap = new HashMap();
for (int i = 0; i < jiedian.size(); i++) {
et = (Element) jiedian.get(i);// 循环依次得到子元素
if (et.getName().equals("sign")) {// et.getName():获取元素名称
resultMap.put("sign", et.getText());// et.getText():获取元素文本
} else if (et.getName().equals("retcode")) {
resultMap.put("retcode", et.getText());
} else if (et.getName().equals("funcode")) {
resultMap.put("funcode", et.getText());
} else if (et.getName().equals("datetime")) {
resultMap.put("datetime", et.getText());
} else if (et.getName().equals("transid")) {
resultMap.put("transid", et.getText());
} else if (et.getName().equals("model")) {
List childrenNode = et.getChildren();


for (int j = 0; j < childrenNode.size(); j++) {
et = (Element) childrenNode.get(j);// 循环依次得到子元素
if (et.getName().equals("score")) {
resultMap.put("score", et.getText());
}
break;
}
}
}
return resultMap;


}


      public static void main(String[] args){
       DuXMLDoc doc = new DuXMLDoc();  
       String xml = ""+
"e635f9f9a31efee891a5b44474a4a4ca"+
"11111"+
"22222"+
"33333"+
"44444"+
""+
 "55555"+
 "66666"+
 "77777"+
 "88888"+
 "99999"+
"
";
       doc.xmlElements(xml);
   }

}

你可能感兴趣的:(Java,xml)