您的位置:首页 > 其它

解析xml文件

2008-03-13 16:31 169 查看
日志 > 个人日记


转载到我空间

复制本文网址 隐藏签名档 小字体 选用该信纸
上一篇|下一篇|返回日志列表

设置置顶 | 编辑 | 删除

解析xml文件

发表于:2008年2月26日 14时24分21秒阅读(2)评论(0)特效:[图]本文链接:http://user.qzone.qq.com/592433424/blog/1204007061



[align=center]解析xml文件[/align]


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;
}
}


评论列表

声明:腾讯不会在QQ空间以回复方式通知用户中奖,请大家不要相信这些虚假信息以免上当受骗。更多虚假案例请点击->
发表评论
第一页 上一页 下一页 最后页
2篇评论,第1页/共1页

全选删除
批量删除 取消批量删除

第一页 上一页 下一页 最后页
2篇评论,第1页/共1页

使用签名档 请选择道具
请选择道具
隐身草
彩虹炫
天使之爱

点击这里发表评论
温馨提示:点击验证码输入框,以获取验证码

请输入验证码:
提交 取消 悄悄话 | (以小纸条形式发送) 查看今日免费发送数量

上一篇|下一篇|返回日志列表

//function jumpToTop() {
if(isSmall) {
document.body.scrollTop = 0;
}
else
parent.$('mbody').scrollTop = 0;
}

function _quote(s){
s=s.replace(//[quote/=引自:(.+?)(?:/x20| ){1,2}于/x20(.+?)/x20发表的评论/]/g,"/x03引自:$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);
//]]>

loading......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: