import java.io.InputStream;

import java.io.InputStream;

  import java.net.URL;

  import java.net.URLConnection;

  import javax.xml.transform.TransformerException;

  import org.apache.log4j.Logger;

  import org.w3c.dom.Attr;

  import org.w3c.dom.Document;

  import org.w3c.dom.Element;

  import org.w3c.dom.Node;

  import org.w3c.dom.NodeList;

  import com.sun.org.apache.xpath.internal.XPathAPI;

  /**

  * 处理XML的封装类

  */

  public abstract class XmlHelper {

  private XmlHelper() {

  }

  private static SimpleXmlParser parser = new SimpleXmlParser();

  private static Logger logger = Logger.getLogger(XmlHelper.class.getName());

  public static Document getDocument(String xmlStr) throws Exception {

  try {

  return parser.parseXml(xmlStr);

  } catch (Exception ex) {

  logger.error("得到Document出错-->", ex);

  throw ex;

  }

  }

  public static Document getDocumentFormStream(InputStream s)

  throws Exception {

  try {

  Document doc = parser.parse(s);

  return doc;

  } catch (Exception ex) {

  logger.error("从文件流中得到Document出现错误,错误为-->", ex);

  throw ex;

  }

  }

  public static Document getDocumentFormFile(String url) {

  try {

  URL u = new URL(url);

  URLConnection connection = u.openConnection();

  connection.setDoInput(true);

  connection.setUseCaches(false);

  Document doc = parser.parse(url);

  connection.getInputStream()。close();

  return doc;

  } catch (Exception ex) {

  logger.info("从url中取得数据出错,错误为-->", ex);

  }

  return null;

  }

  public static NodeList selectNodeList(Node node, String xpath)

  throws TransformerException {

  try {

  return XPathAPI.selectNodeList(node, xpath);

  } catch (TransformerException ex) {

  logger.error("得到xml节点队列出错-->", ex);

  throw ex;

  }

  }

  public static Node selectSingleNode(Node node, String xpath)

  throws TransformerException {

  try {

  return XPathAPI.selectSingleNode(node, xpath);

  } catch (TransformerException ex) {

  logger.error("得到单一的xml节点出错-->", ex);

  throw ex;

  }

  }

  public static Node selectNode(Node node, String xpath) {

  for (int i = 0; i < node.getChildNodes()。getLength(); i++) {

  Node childNode = node.getChildNodes()。item(i);

  if (childNode.getNodeType() == Node.ELEMENT_NODE

  && childNode.getNodeName()。equals(xpath))

  return childNode;

  }

  return null;

  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值