使用Jdom解析xml格式字符串

package controllers;

import java.io.Reader;
import java.io.StringReader;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

import play.mvc.Http;

import util.MD5Util;


public class XHdefrayInterface extends Application{

    public static String DefrayState(String xml_content){

        String info = "";
        if(xml_content != null ){
            int indexStr = xml_content.indexOf("?>");
            if(indexStr > 1){
                xml_content = xml_content.substring(indexStr+2);
            }

            Reader reader = new StringReader(xml_content);
            
            SAXBuilder saxb = new SAXBuilder();    //在内存中建立一个sax解析对象 
            
            Document doc;
            
            try {
                doc = saxb.build(reader);     //解析对象调用build方法建立文档对象
                Element rootElement = (Element) doc.getRootElement();     //获取文档根节点元素
                Element ls = rootElement.getChild("request");             //获取文档根节点里的字节点request
                
                //遍历需要的元素                
                List lse = ls.getChildren();
                for (Iterator itr = lse.iterator(); itr.hasNext(); ) {
                    
                  Element element = (Element)itr.next();
                  String eName = element.getName();            //获取元素名称
                  String eValue = element.getValue();        //获取元素里的值
    
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }else{
            return null;
        }
    }
	
	
	public static void main(String[] args) throws Exception {
//		"<?xml version=’1.0’ encoding=’UTF-8’?>"+
		String str = "<?xml version=’1.0’ encoding=’UTF-8’?>sd"+
				"<message>" +
				"<request>" +
				"<columnid>10001101</columnid>" +
				"<orderid>1000110120120424215206179553</orderid>" +
				"<pricecode>1</pricecode>" +
				"<status>9004</status>" +
				"<sign>0e64039fb911005571eb979752ae8dd2</sign>" +
				"<timestamp>1335275584</timestamp>" +
				"</request>" +
				"</message>";
		DefrayState(str);
		
	}
}


比较简单的jdom例子,希望对你有帮助!



posted on 2012-06-12 15:04  niklausxu  阅读(319)  评论(0编辑  收藏  举报

导航