package cn.dd.client;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XmlUtils {
/**
* 获取Document对象。根据xml文件的名字获取Document对象。
*
* @param file
* 要获取对象的xml文件全路径。
* @return 返回获取到的Document对象。
* @throws IOException
* 如果发生任何 IO 错误时抛出此异常。
* @throws SAXException
* 如果发生任何解析错误时抛出此异常。
* @throws ParserConfigurationException
* 如果无法创建满足所请求配置的 DocumentBuilder,将抛出该异常。
* @exception NullPointerException
* 如果file为空时,抛出此异常。
*/
public static Document parseForDoc(final String file) throws SAXException,
IOException, SecurityException, NullPointerException,
ParserConfigurationException {
return XmlUtils.parseForDoc(new FileInputStream(file));
}
/**
* 将一个xml字符串解析成Document对象。
*
* @param xmlStr
* 要被解析的xml字符串。
* @param encoding
* 字符串的编码。
* @return 返回解析后的Document对象。
* @throws IOException
* 如果发生任何 IO 错误时抛出此异常。
* @throws SAXException
* 如果发生任何解析错误时抛出此异常。
* @throws ParserConfigurationException
* 如果无法创建满足所请求配置的 DocumentBuilder,将抛出该异常。
*/
public static Document parseForDoc(String xmlStr, String encoding)
throws SAXException, IOException, ParserConfigurationException {
if (xmlStr == null) {
xmlStr = "";
}
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(
xmlStr.getBytes(encoding));
return XmlUtils.parseForDoc(byteInputStream);
}
/**
* 获取Document对象。根据字节输入流获取一个Document对象。
*
* @param is
* 获取对象的字节输入流。
* @return 返回获取到的Document对象。如果出现异常,返回null。
* @throws IOException
* 如果发生任何 IO 错误时抛出此异常。
* @throws SAXException
* 如果发生任何解析错误时抛出此异常。
* @throws ParserConfigurationException
* 如果无法创建满足所请求配置的 DocumentBuilder,将抛出该异常。
* @exception IllegalArgumentException
* 当 is 为 null 时抛出此异常。
*/
public static Document parseForDoc(final InputStream is)
throws SAXException, IOException, ParserConfigurationException,
IllegalArgumentException {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
return builder.parse(is);
} finally {
is.close();
}
}
/**
* 通过xpath表达式解析某个xml节点。
*
* @param obj
* 要被解析的xml节点对象。
* @param xPath
* xpath表达式。
* @param qName
* 被解析的目标类型。
* @return 返回解析后的对象。
* @throws XPathExpressionException
* 如果不能计算 expression。
*
* @exception RuntimeException
* 创建默认对象模型的 XPathFactory 遇到故障时。
* @exception NullPointerException
* 如果xPath为空时抛出时异常。
*/
private static Object parseByXpath(final Object obj, final String xPath,
QName qName) throws NullPointerException, RuntimeException,
XPathExpressionException {
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath path = xpathFactory.newXPath();
return path.evaluate(xPath, obj, qName);
}
/**
* 通过XPath表达式获取单个节点。
*
* @param obj
* 要被解析的對象。
* @param xPath
* XPath表达式。
* @return 返回获取到的节点。
*
* @throws XPathExpressionException
* 如果不能计算 expression。
*
* @exception RuntimeException
* 创建默认对象模型的 XPathFactory 遇到故障时。
* @exception NullPointerException
* 如果xPath为空时抛出时异常。
*/
public static Node parseForNode(final Object obj, final String xPath)
throws NullPointerException, RuntimeException,
XPathExpressionException
{
return (Node) XmlUtils.parseByXpath(obj, xPath, XPathConstants.NODE);
}
/**
* 通过XPath表达式获取某个xml节点的字符串值。
*
* @param obj
* 要被解析的對象。
* @param xPath
* XPath表达式。
* @return 返回获取到的节点的字符串值。
*
* @throws XPathExpressionException
* 如果不能计算 expression。
*
* @exception RuntimeException
* 创建默认对象模型的 XPathFactory 遇到故障时。
* @exception NullPointerException
* 如果xPath为空时抛出时异常。
*/
public static String parseForString(final Object obj, final String xPath)
throws NullPointerException, RuntimeException,
XPathExpressionException
{
return (String) XmlUtils
.parseByXpath(obj, xPath, XPathConstants.STRING);
}
/**
* 通过XPath表达式获取某个xml节点的布尔值。
*
* @param obj
* 要被解析的對象。
* @param xPath
* XPath表达式。
* @return 返回获取到的节点的布尔值。
*
* @throws XPathExpressionException
* 如果不能计算 expression。
*
* @exception RuntimeException
* 创建默认对象模型的 XPathFactory 遇到故障时。
* @exception NullPointerException
* 如果xPath为空时抛出时异常。
*/
public static Boolean parseForBoolean(final Object obj, final String xPath)
throws NullPointerException, RuntimeException,
XPathExpressionException
{
return (Boolean) XmlUtils.parseByXpath(obj, xPath,
XPathConstants.BOOLEAN);
}
/**
* 通过XPath表达式获取Node列表。
*
* @param obj
* 要被解析的對象。
* @param xPath
* XPath表达式。
* @return 返回获取到的Node列表。
*
* @throws XPathExpressionException
* 如果不能计算 expression。
*
* @exception RuntimeException
* 创建默认对象模型的 XPathFactory 遇到故障时。
* @exception NullPointerException
* 如果xPath为空时抛出时异常。
*/
public static List parseForNodeList(final Object obj, final String xPath)
没有合适的资源?快使用搜索试试~ 我知道了~
HttpURLConnection获取webService上的值
共12个文件
java:3个
class:3个
project:2个
4星 · 超过85%的资源 需积分: 50 54 下载量 90 浏览量
2015-10-13
14:14:08
上传
评论
收藏 12KB RAR 举报
温馨提示
JAVA代码里,HttpURLConnection获取webservice的值,包含W3C解析XML节点方法
资源推荐
资源详情
资源评论
收起资源包目录
urlConnection.rar (12个子文件)
ws_client_02
.project 388B
src
cn
dd
client
App.java 2KB
XmlUtils.java 13KB
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 301B
bin
cn
dd
client
App.class 3KB
XmlUtils.class 6KB
ws_server
.project 385B
src
cn
dd
server
HelloService.java 628B
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 302B
bin
cn
dd
server
HelloService.class 1KB
共 12 条
- 1
资源评论
- mojiman01052015-10-13很好的资料,很齐全,谢谢
- cy12345652017-10-07很好的资料.
hqlai1234
- 粉丝: 6
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功