xml转为html
2010-05-04 13:29
依据一定的格式把xml转为html,要用到xsl。xsl语法可以在网上找详细资料。现贴出代码:
java类(我是通过一个http去访问的)
package web;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
public class XmlToHtmlAction extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String xmlContent = this.getFileContent("F:/szworkspace/play/WebRoot/xsl/cd_catalog.xml");
String xslContent = this.getFileContent("F:/szworkspace/play/WebRoot/xsl/cd_catalog.xsl");
/*xslContent = "<?xml version=\"1.0\" ?>";
xslContent +="<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/TR/WD-xsl\">";
xslContent +="</xsl:stylesheet>";*/
try{
String html = this.xmlToHtml(xslContent, xmlContent);
response.getWriter().print(html);
}catch(Exception e){
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
/**
* @desc 获得文件内容,可能会有编码问题
* @param fileName 文件路径
* */
private String getFileContent(String fileName) {
StringBuilder strContent = new StringBuilder();
BufferedReader bis = null;
try {
File file = new File(fileName);
bis = new BufferedReader(new InputStreamReader(new FileInputStream(
file),"GBK"));
String line = null;
while ((line = bis.readLine()) != null) {
strContent.append(line).append("\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return strContent.toString();
}
/**
* @desc 将xml字符串转换为html
* @param bosXslSou xsl内容
* @param bosXmlSou xml内容
* */
private String xmlToHtml(String xslContent, String xmlContent) throws TransformerException {
StringReader bosXslSou = new StringReader(xslContent);
StringReader bosXmlSou = new StringReader(xmlContent);
TransformerFactory tFactory = TransformerFactory.newInstance();
// 获取xsl的字符流
Transformer transformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource(bosXslSou));
Properties properties = transformer.getOutputProperties();
properties.setProperty(OutputKeys.ENCODING,"GBK");
properties.setProperty(OutputKeys.METHOD, "html");
transformer.setOutputProperties(properties);
ByteArrayOutputStream bosRes = new ByteArrayOutputStream();
transformer.transform(new javax.xml.transform.stream.StreamSource(bosXmlSou),new javax.xml.transform.stream.StreamResult(bosRes));
String sHtmlCont = new String(bosRes.toString());
return sHtmlCont;
}
}
xsl文件:
<?xml version="1.0" encoding="GBK"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="GBK"/>
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="CATALOG/CD">
<tr>
<td>
<xsl:value-of select="TITLE" />
</td>
<td>
<xsl:value-of select="ARTIST" />
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
xml文件:
<?xml version="1.0" encoding="GBK"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>测试</TITLE>
<ARTIST>CC</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
</CATALOG>
然后自己配置sevelt吧。
分享到:
相关推荐
用xsl来转换xml,xml转html的例子,自己写的源码,模板很有用
xml的转化,这是一个例子,将一个xml文件转化成一个html文件
通过js读取xml的小例子,如果有需求,奉送js+xml的考试系统
天天都要重复一遍又一遍的创建表单,有没有一种服务器端只修改一个配置文件,就可以改变前台的表单的办法呢?...该XSLT是一个通用的模式,只需要简单的模仿例子中的xml文件格式,就可以生成所有形式的表单.
xml 这是我根据实际需求总结出的xml操作类库,还一个txt文件是我的例子 想研究的人就看看吧。反正一切以实用为主。 主要是没有csdn没分了。才贴点东西上去,不好之处请大家谅解啊,程序完全可以自由扩展!
js读取xml的例子,压缩包包含html(js写的用于读取xml的代码)和xml文件。 博文链接:https://laies.iteye.com/blog/131874
freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子freemarker生成excel、word、html、xml简单例子
一个html、Servlet、JSP、XML、javaBeen的简单例,包含源码。
freemarker生成excel、word、html、xml简单例子
XML 指南 在我们这个XML指南里你将学到什么是XML,XML和HTML有什么不同。你将学习如何在你的应用软件中使用XML。下面就开始学习XML吧。 XML 实例 ...通过例子来学习! 通过我们的编辑器,你可以编辑...大量的XML例子!!
第2章 创建并显示第一个XML文档 2.1 创建一个XML文档 2.1.1 创建XML文档 2.1.2 XML文档剖析 2.1.3 一些基本的XML规则 2.2 显示XML文档 2.2.1 显示没有样式表的XML文档 2.2.2 在Internet Explorer 5中获取XML ...
网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的...
就我个人理解, xml就是html的一个扩展, 相对的html是xml的一个子集. 现在很多的程序用xml写配置文件, 或者存放一些信息, 很方便, 有时候比ini格式用起来还要方便, 这是因为linux下面有库可以解xml格式的文件. 比如...
第2章 XML语法 2.1 标记语法 2.1.1 字符 2.1.2 命名 2.2 文档部分 2.3 元素 2.3.1 起始标记 2.3.2 结束标记 2.3.3 空元素标记 2.3.4 标记:一个简单的例子 2.3.5 文档元素 2.3.6 子元素 2.3.7 元素嵌套 ...
关于XML的课程PPT:Why XML? XML与HTML XML详细介绍 XHTML 简单入门例子
2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 < 代表 ", > 代表 ">" , &...
第2章 XML语法 2.1 标记语法 2.1.1 字符 2.1.2 命名 2.2 文档部分 2.3 元素 2.3.1 起始标记 2.3.2 结束标记 2.3.3 空元素标记 2.3.4 标记:一个简单的例子 2.3.5 文档元素 2.3.6 子元素 2.3.7 元素嵌套 ...
第2章 XML语法 2.1 标记语法 2.1.1 字符 2.1.2 命名 2.2 文档部分 2.3 元素 2.3.1 起始标记 2.3.2 结束标记 2.3.3 空元素标记 2.3.4 标记:一个简单的例子 2.3.5 文档元素 2.3.6 子元素 2.3.7 元素嵌套 ...