创建 和解析xml

来源:互联网 发布:携程亲子园虐童 知乎 编辑:程序博客网 时间:2024/05/21 07:07

 需要的包  cobra.jar  js.jar

 

private boolean creareJsp(String jspName,String title,boolean isYDYW,String yuanwen,String zhengwen,String topImg,Date date){
  String savePath = ServletActionContext.getServletContext().getRealPath("/");
  String path = topImg.substring(topImg.indexOf("/", 1));
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  String dateFormat = sdf.format(date);
  String filePath = ServletActionContext.getServletContext().getRealPath("wxpage") + "/" + jspName;
  OutputStreamWriter fw = null;
  try {
   fw = new OutputStreamWriter(new FileOutputStream(filePath),"UTF-8");
   StringBuffer sb = new StringBuffer();
//   sb.append("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\r\n");
   sb.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n");
   sb.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n");
   sb.append("<head>\r\n");
   sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n");
   sb.append("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;\" />\r\n");
   sb.append("<meta name=\"format-detection\" content=\"telephone=no\" />\r\n");
   sb.append("<title>").append(title).append("</title>\r\n");
   //sb.append("<link href=\"css/use.css\" rel=\"stylesheet\" type=\"text/css\" />\r\n");
   sb.append("<style type=\"text/css\">\r\n");
   sb.append("<!--\r\n");
   sb.append("#biaoti {\r\n");
   sb.append("width:70%;\r\n");
   sb.append("max-width:540px;\r\n");
   sb.append("font-family: \"微软雅黑\";\r\n");
   sb.append("font-size:20px;\r\n");
   sb.append("text-align:left;\r\n");
   sb.append("padding-top:5px;\r\n"); 
   sb.append("}\r\n");
   sb.append("#riqi{\r\n");
   sb.append("width:70%;\r\n");
   sb.append("max-width:540px;\r\n");
   sb.append("font-family: \"微软雅黑\";\r\n");
   sb.append("font-size:12px;\r\n");
   sb.append("text-align:left;\r\n");
   sb.append("padding-top:5px;\r\n");
   sb.append("color:#CCC;\r\n");
   sb.append("height:10px;\r\n");  
   sb.append("}\r\n");
   sb.append("a:link {\r\n");
   sb.append("font-size:13px;\r\n");
   sb.append("text-decoration:none;\r\n");
   sb.append("font-family: \"微软雅黑\";\r\n");
   sb.append("color:#667B99;\r\n");
   sb.append("}\r\n");
   sb.append("a:hover {\r\n");
   sb.append("font-size:13px;\r\n");
   sb.append("color:#667B99;\r\n");
   sb.append("text-decoration:underline;\r\n");
   sb.append("}\r\n");
   sb.append("-->\r\n");
   sb.append("</style>\r\n");
   sb.append("</head>\r\n");
   sb.append("<body leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\"   bgcolor=\"#FFFFFF\" style=\"padding:10px 10px 2px 10px;\">\r\n");
   sb.append("<div class=\"biaoti\" id=\"biaoti\">").append(title).append("</div>\r\n");
   sb.append("<div class=\"riqi\" id=\"riqi\">").append(dateFormat).append("</div>\r\n");
   BufferedImage sourceImg = ImageIO.read(new FileInputStream(savePath+path));
   if(sourceImg.getWidth()>600){
    sb.append("<p><img alt=\"\" src=\"").append(topImg).append("\" style=\"width:100%;max-width:640px;\" /></p>");
   }else{
    sb.append("<p><img alt=\"\" src=\"").append(topImg).append("\" style=\"width:100%;max-width:" + sourceImg.getWidth() + "px;\"/></p>");
   }
   
   zhengwen = parseHtml(zhengwen);
   sb.append(zhengwen);
   if(isYDYW){
    sb.append("<p><a href=\"").append(yuanwen).append("\"").append(">").append("阅读原文</a></p>");
   }
   sb.append("</body>\r\n");
   sb.append("</html>");
   fw.write(sb.toString());
  } catch (Exception e) {
   logger.error("生成jsp失败", e);
   return false;
  } finally {
   try {
    fw.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
//  boolean result = copeFile(filePath);
  return true;
 }
 
 
 private String parseHtml(String htmlcontent) throws SAXException, IOException{
  
  
  Reader reader = new StringReader(htmlcontent); 
  InputSourceImpl inputSource = new InputSourceImpl(reader, 
    ""); 
  UserAgentContext uacontext = new SimpleUserAgentContext(); 
  DocumentBuilderImpl builder = new DocumentBuilderImpl(uacontext); 
  Document d = builder.parse(inputSource); 
  HTMLDocumentImpl document = (HTMLDocumentImpl) d; 

  NodeList  nl=document.getElementsByTagName("img"); 
  for (int i = 0; i < nl.getLength(); i++) { 
   HTMLImageElement img=(HTMLImageElement) nl.item(i); 
   if(img.hasAttribute("width")){
    img.removeAttribute("width");
   }
   String savePath = ServletActionContext.getServletContext().getRealPath("/");
   String path = img.getSrc().substring(img.getSrc().indexOf("/", 1));
   BufferedImage sourceImg = ImageIO.read(new FileInputStream(savePath + path));
   if(sourceImg.getWidth()>600){
   
    img.setAttribute("style", "width:100%;max-width:640px;");
   }else{
    img.setAttribute("style", "width:100%;max-width:" + sourceImg.getWidth() + "px;");
   }
   
  }
  
  
  return document.getInnerHTML();
 }

原创粉丝点击