`
gxh04007101
  • 浏览: 15146 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

xml转html例子2

 
阅读更多
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成html,很实用的源码

    用xsl来转换xml,xml转html的例子,自己写的源码,模板很有用

    xml的转化成html

    xml的转化,这是一个例子,将一个xml文件转化成一个html文件

    html+js+xml的例子

    通过js读取xml的小例子,如果有需求,奉送js+xml的考试系统

    自己编写的从XML到HTML的表单Form转换代码xml2form 使用XSLT客户端实现

    天天都要重复一遍又一遍的创建表单,有没有一种服务器端只修改一个配置文件,就可以改变前台的表单的办法呢?...该XSLT是一个通用的模式,只需要简单的模仿例子中的xml文件格式,就可以生成所有形式的表单.

    xml操作 html读取 js转换

    xml 这是我根据实际需求总结出的xml操作类库,还一个txt文件是我的例子 想研究的人就看看吧。反正一切以实用为主。 主要是没有csdn没分了。才贴点东西上去,不好之处请大家谅解啊,程序完全可以自由扩展!

    JS读XML例子

    js读取xml的例子,压缩包包含html(js写的用于读取xml的代码)和xml文件。 博文链接:https://laies.iteye.com/blog/131874

    实用方便freemarker.jar freemarker架包 freemarker生成excel、word、html、xml例子

    freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子freemarker生成excel、word、html、xml简单例子

    一个html、Servlet、JSP、XML、javaBeen的简单例子

    一个html、Servlet、JSP、XML、javaBeen的简单例,包含源码。

    freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子

    freemarker生成excel、word、html、xml简单例子

    XML官方指南中文版(CHM) 下载

    XML 指南 在我们这个XML指南里你将学到什么是XML,XML和HTML有什么不同。你将学习如何在你的应用软件中使用XML。下面就开始学习XML吧。 XML 实例 ...通过例子来学习! 通过我们的编辑器,你可以编辑...大量的XML例子!!

    XML学习指南pdf

    第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 ...

    字符串内特殊字符在html_javascript_xml等内使用时的转换

    网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的...

    linux上xml

    就我个人理解, xml就是html的一个扩展, 相对的html是xml的一个子集. 现在很多的程序用xml写配置文件, 或者存放一些信息, 很方便, 有时候比ini格式用起来还要方便, 这是因为linux下面有库可以解xml格式的文件. 比如...

    XML高级编程pdf

    第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.rar

    关于XML的课程PPT:Why XML? XML与HTML XML详细介绍 XHTML 简单入门例子

    xml入门教程/xml入门教程

    2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 &lt; 代表 ", &gt; 代表 "&gt;" , &...

    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高级编程 (Extensible Markup Language)

    第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 元素嵌套 ...

Global site tag (gtag.js) - Google Analytics