- public static void main(String[] args){
- String xmlStr = null;
- try {
- xmlStr = FileUtils.readFileToString(new File("xmpath"));
- String jsonStr = xmlToJson(xmlStr);
- System.out.println(jsonStr);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public static String xmlToJson(String xml) {
- JSONObject obj = new JSONObject();
- try {
- InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8"));
- SAXBuilder sb = new SAXBuilder();
- Document doc = sb.build(is);
- Element root = doc.getRootElement();
- obj.put(root.getName(), iterateElement(root));
- return obj.toString();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- @SuppressWarnings("unchecked")
- private static Map iterateElement(Element element) {
- List jiedian = element.getChildren();
- Element et = null;
- Map obj = new HashMap();
- List list = null;
- int num = 0;
- list = new LinkedList();
- for (int i = 0; i < jiedian.size(); i++) {
- et = (Element) jiedian.get(i);
- if (et.getTextTrim().equals("")) {
- if (et.getChildren().size() == 0)
- continue;
- if (obj.containsKey(et.getName())) {
- ++num;
- if (num == 1)
- list.add(obj.get(et.getName()));
- list.add(iterateElement(et));
- obj.put(et.getName(), list);
- } else {
- obj.put(et.getName(), iterateElement(et));
- }
- } else {
- obj.put(et.getName(), et.getTextTrim());
- }
- }
- return obj;
- }
- //该片段来自于http://www.codesnippet.cn/detail/0203201511816.html
来源: http://www.codesnippet.cn/detail/0203201511816.html