DOM4j 解析xml
来源:互联网 发布:dotamax周报怎么看数据 编辑:程序博客网 时间:2024/04/28 22:30
简述:
解析xml
(参考:http://7-sun.com/text/23790.html)
maven dependency
<dependency><groupId>maven</groupId><artifactId>dom4j</artifactId><version>1.7-20060614</version></dependency>
代码:
import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ShortUrlUtil {private static Logger logger = LoggerFactory.getLogger(ShortUrlUtil.class);public static int TIMEOUT = 30 * 1000;public static String ENCODING = "UTF-8";public static void main(String[] args) {try{ URL url = new URL("http://api.189.cn/EMP/shorturl/long2short?"); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); //POST Request Define: connection.setDoOutput(true);connection.setDoInput(true);connection.setUseCaches(false);connection.setConnectTimeout(TIMEOUT);connection.setRequestMethod("POST");// POST paramsStringBuilder sbd = new StringBuilder();sbd.append("param=").append("param1");connection.getOutputStream().write(sbd.toString().getBytes());connection.connect(); // response stringString responseStr = getResponseStr(connection);System.out.println("response xml : \n" + responseStr);// process responseString res_message = getValueByKey_XML(responseStr, "res_message");System.out.println("\nget res_message: \n" + res_message);;}catch(IOException e){ e.printStackTrace();}}/** * XML 解析 * get value by key * @param replyText * @param key * @return */private static String getValueByKey_XML(String replyText, String key){String result = "";SAXReader reader = new SAXReader();ByteArrayInputStream bais = new ByteArrayInputStream(replyText.getBytes());Document doc = null;try {doc = reader.read(bais);} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}Element root = doc.getRootElement();Iterator nodes = root.elementIterator();while(nodes.hasNext()){Element node = (Element) nodes.next();if(key.equals(node.getName())){result = node.getText();}}return result;}/** * 通过HttpConnection 获取返回的字符串 * @param connection * @return * @throws IOException */private static String getResponseStr(HttpURLConnection connection) throws IOException{StringBuffer result = new StringBuffer();int responseCode = connection.getResponseCode();if (responseCode == connection.HTTP_OK) {InputStream in = connection.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(in, ENCODING));String inputLine = "";while ((inputLine = reader.readLine()) != null) {result.append(inputLine);}}return String.valueOf(result);}}
输出:
0 0
- 用DOM4J解析XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 解析xml之--DOM4J
- dom4j解析XML
- 使用 dom4j 解析 XML
- xml文件解析-DOM4J
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- dom4j解析xml方法
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 读书摘要--Java程序设计8章:多线程
- HDU 2196 树的直径
- 香港游客亲睐‘周世黑鸭’
- Tomcat7源码阅读日记2
- 六种主流编程语言(C、C++、Python、JavaScript、PHP、Java)特性对比
- DOM4j 解析xml
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- C++ 运算符重载
- 又是一种windows下用python的常见组合:pydev+eclipse
- 今天这样用枚举,自己都笑尿了
- c++学习笔记
- Socket编程
- 源码编译MySQL Cluster7.2.15安装过程
- Java设计模式之装饰者模式