解析xml文件

日志 >  个人日记
设置置顶 | 编辑 | 删除

解析xml文件

发表于:2008年2月26日 14时24分21秒阅读(2)评论(0)特效:[图] 本文链接:http://user.qzone.qq.com/592433424/blog/1204007061
package com.shzscq.searchpatent.util;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
/**
* 提取解析xml后的结果值,外部可以直接使用解析后的结果<br>
* Create Date: 2008-2-22 <br>
* @version  1.0 22 2 2008
*
*/
public class XmlReasult {
private String sTotalHit = "";// 命中的总数
private HashMap<String, String> mapEryDBHit = new HashMap<String, String>();
private String sTime = "";// 检索所用的时间
private String sHtmlContent = "";// 转化完的html代码内容
private BufferedReader in = null;// 存储xml文件内容的数据流
private String sXmlContent = "";// 存储xml文件内容信息
/**
  * 以下对initial方法中所使用的变量进行举例说明:<br>
  * @param sServer:http://192.168.0.238/search1.dhtml <br>
  * @param sXslFileName:xmlresult.xsl <br>
  * @param sInputQuery:sQuery=computer&sDbs=de,us&iPage=1&iPageSize=20&sFieldList=PN,TI,PA,AU<br>
  * @throws Exception
  */
public void initial(String sServer, String sXslFileName,
   String sInputQuery)throws Exception
{
  URL url = new URL(sServer);
  URLConnection connection = url.openConnection();
  connection.setDoOutp ut(true);
  PrintWriter out = new PrintWriter(connection.getOutputStream());
  out.print(sInputQuery);
  out.close();
  this.in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
  String sLine = "";
  while ((sLine = in.readLine()) != null)
  {
   this.sXmlContent = this.sXmlContent + sLine + "/n";
  }
  // SAX解析XML流 begin
  ParseXML parseXml = new ParseXML();
  try
  {
   parseXml.parse(sXmlContent);
   sTotalHit = parseXml.getSTotalHit();// 命中总数
   sTime = parseXml.getSTime();// 检索耗时
   // 各个数据库中命中的结果信息存储到一个mapEryDBHit中
   mapEryDBHit = (HashMap<String, String>)
   parseXml.getMapEryDBHit();
  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
  //
  // SAX解析XML流后,使用xsl样式表吧把xml文件转化成html代码
  this.sHtmlContent = XmlToHtml(sXslFileName, this.sXmlContent);
}
public String XmlToHtml(String sXslFileName, String sXmlContent)
throws Exception
{
  String sHtmlCont = "";// 用于存储临时html代码
  String sTemp = "";// 临时变量,用于存取文件中每行的文本文字
  String sFileContent = "";
  FileInputStream fis = new FileInputStream(sXslFileName);
  InputStreamReader isr = new InputStreamReader(fis);
  BufferedReader buf = new BufferedReader(isr);
  while ((sTemp = buf.readLine()) != null)
  {
   // 读取文件内容的每一行合成一个String字符串
   sFileContent = sFileContent + sTemp;
  }
  // xsl内容字符串转变为字符流
  StringReader bosXslSou = new StringReader(sFileContent);
  // xml内容字符串转变为字符流
  StringReader bosXmlSou = new StringReader(sXmlContent);
  try
  {
   TransformerFactory tFactory = TransformerFactory.newInstance();
   // 获取xsl的字符流
   Transformer transformer = tFactory.newTransformer
   (new javax.xml.transform.stream.StreamSource(bosXslSou));
   ByteArrayOutputStream bosRes = new ByteArrayOutputStream();
   transformer.transform(new javax.xml.transform.stream.StreamSource(bosXmlSou),
     new javax.xml.transform.stream.StreamResult(bosRes));
   sHtmlCont = new String(bosRes.toString());
  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
  return sHtmlCont.toString();//返回html代码内容
}
public HashMap<String, String> getMapEryDBHit()
{
  return mapEryDBHit;
}
public String getSTotalHit()
{
  return sTotalHit;
}
public String getSTime()
{
  return sTime;
}
public String getSResult()
{
  return sHtmlContent;
}
}
 
评论列表
请选择道具
温馨提示:点击验证码输入框,以获取验证码
请输入验证码:
      
<script type="text/javascript"> //$1  于 $2 发表的评论
/x02").replace(//[//quote/]/g,"/x01"); for(var i=0;i<2;i++) s=s.replace(//x03([^/x03/x01/x02]*?)/x02([^/x03/x01/x02]*?)/x01/g, function(a,b,c){ return '
'+b+'引用内容:

'+c+'
'; }); return s.replace(/[/x03/x02/x01]/g,""); } var bLoaded = false; function checkMsgReply(obj) { if(!bLoaded) top.includeJS('/qzone/blog/script/common.js', function(){bLoaded=true;checkMsgReply(obj)}, document); else checkReply(obj); if(obj.checked){ MAX_COMMENT_LEN = 500; } else { MAX_COMMENT_LEN = 4500; } _fontCount = MAX_COMMENT_LEN; //字数限制 if(!window.sendCommentEditor) return; if(sendCommentEditor.editorArea.editMode == 1) toCountFont(sendCommentEditor.id, "html"); else toCountFont(sendCommentEditor.id, "text"); } function showMsgLeftCnt() { if(!bLoaded) top.includeJS('/qzone/blog/script/common.js', function(){bLoaded=true;showMsgLeftCnt();}, document); else showLeftSMS(); } function selectBlogPaper() { if(checkLogin() <= 10000) { top.showLoginBox("mall"); return; } if(!!top.g_JData["blogContent"]) { if(parent.g_iLoginUin == parent.g_iUin) { location.href="/qzone/newblog/blogeditor.html?paperid=" + parent.g_JData["blogContent"].data.lp_id + "&paperstyle=" + parent.g_JData["blogContent"].data.lp_style + "&paperdialog=1"; } else { parent.location.href="http://user.qzone.qq.com/" + parent.g_iLoginUin + "/addNewBlog?paperid=" + parent.g_JData["blogContent"].data.lp_id + "&paperstyle=" + parent.g_JData["blogContent"].data.lp_style; } } else { top.showMsgBox("抱歉,暂时无法获取该信纸信息!", 1, 2000); } } /** * 批量删除中选择全选 */ function selectAllComments(bChecked) { var oList = document.getElementsByName("commentCheckBox"); if(oList.length==0) return; for(var i=0; i 0){ dalert(null, parent.g_XDoc["delBatchReply"].xml, 2000); delete parent.g_XDoc["delBatchReply"]; return; } dalert(null, parent.g_XDoc["delBatchReply"].xml, 2000, 2); contentProperty.totalCommentNumber -= nDeleteCnt; //清理cache with(contentProperty){ delete parent.g_XDoc["blogRoot"].contentHSList[currentBlogid]; pageList = {}; pageIndexMap = []; currentCommentPage = lastCommentPage = (!contentProperty.nowaPage)?0:nowaPage[3]; parent.g_XDoc["blogRoot"].replyNumUpdateHSmap[currentBlogid] = totalCommentNumber; parent.isRefreshTop = true; if(currentCommentPage == 0) { setTimeout(contentInit, 1000); } else{ var tp = Math.ceil(totalCommentNumber/PAGE_COMMENT_NUM); var num = totalCommentNumber%PAGE_COMMENT_NUM; if(num==0 || currentCommentPage10000 && top.g_iLoginUin!=top.g_iUin) { $("msgboardSelfReply").style.display = ""; $("blogSelPaper").title = "我也要使用此信纸写日志"; } setTimeout(contentInit,50); //]]> </script>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值