`
gxh04007101
  • 浏览: 15618 次
  • 性别: 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吧。
分享到:
评论

相关推荐

    一个纯XML的网站例子

    在“一个纯XML的网站例子”中,我们可以理解为这个网站完全基于XML技术来构建。这意味着网站的所有内容,包括文本、图像描述、元数据等,都以XML格式存储和传输。XML文档由一系列元素构成,每个元素都有自己的开始...

    有关XML文档的例子

    每个文件都可能有不同的结构和规则,通过阅读和分析这些例子,我们可以加深对XML的理解,学习如何创建、解析和操作XML文档。在实际开发中,XML常与Java、Python、.NET等语言配合,实现数据的序列化和反序列化,或者...

    Delphi XML转HTML

    在这个例子中,我们定义了一个根节点模板,将整个XML文档包裹在HTML的`&lt;html&gt;`和`&lt;body&gt;`标签内。另一个模板匹配`&lt;item&gt;`元素,并将它们转换为`&lt;div&gt;`,其中包含`&lt;item&gt;`的`title`子元素的值。 在Delphi中,可以...

    xsl转xml成html,很实用的源码

    在"用xsl来转换xml,xml转html的例子"中,核心概念是XSLT转换。XSLT转换过程包含以下步骤: 1. **创建XSL模板**:XSL模板定义了XML元素如何被映射到HTML元素。每个模板都包含一个模式(pattern),该模式匹配XML...

    XML相关资料,例子简单XML文件

    这个例子展示了一个简单的XML文件,描述了一个书籍列表。`books` 是根元素,包含多个 `book` 子元素,每个 `book` 元素包含了关于一本书的信息。 通过理解和掌握XML的基本概念和语法规则,开发者能够有效地创建、...

    xml简单解析例子

    2. SAX解析:SAX是基于事件驱动的解析器,它逐行读取XML文档,当遇到元素、属性或其他结构时,会触发相应的事件回调。这种方式内存效率高,适用于处理大型XML文件,但需要编写事件处理程序。 在这个“xml简单解析...

    一个很简单的XML例子

    在本文中,我们将深入探讨一个简单的XML例子,这个例子展示了一个书目表的实现,这对于理解XML的基本结构和用法非常有帮助。 XML文档的基本结构包括文档声明、元素、属性、注释等部分。首先,我们来看一个基本的XML...

    xml数据岛例子

    在"XML数据岛"的例子中,XML数据通常以`&lt;xml id="someID" src="data.xml" /&gt;`的形式嵌入HTML页面,这里的"data.xml"是XML文件的路径,"someID"则是JavaScript访问该XML数据的标识符。这样,XML数据就可以作为页面的...

    xslt例子(转换修改xml)

    2. **元素输出**:`&lt;xsl:element&gt;`用于动态创建新的XML元素。通过使用这个指令,我们可以根据需要构造出新的XML结构。 3. **文本处理**:`&lt;xsl:text&gt;`用于插入纯文本,而`&lt;xsl:value-of select="expression"&gt;`则...

    html+js+xml的例子

    这个名为"html+js+xml的例子"的压缩包,显然是为了展示如何结合使用这些技术实现特定功能,即通过JavaScript读取并处理XML数据。在这个案例中,我们关注的是一个零售管理系统的应用场景,这可能涉及到进销存管理。 ...

    xml解析讲解例子

    本讲解将深入探讨XML解析在Android中的应用,并通过具体的例子"XmlResTest"来辅助理解。 一、XML基础 XML是一种可扩展的标记语言,与HTML类似,但更注重数据的结构和语义。XML文档由元素(Element)、属性...

    php 与XML的例子

    XML设计的目标是传输和存储数据,而非显示数据,这与HTML(超文本标记语言)的主要用途不同。XML文档由元素、属性和文本内容组成,具有自我描述性,可以跨平台、跨应用程序进行数据交换。 在PHP中处理XML,我们需要...

    DOM解析XML文件例子

    DOM(Document Object Model)是一种标准,它允许程序员和脚本语言通过对象模型来访问和操作XML或HTML文档。在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改...

    xml操作的例子

    本篇文章将通过一个具体的例子,结合Eclipse这款强大的开发工具,探讨如何进行XML的操作。 首先,我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成。元素是...

    XML实践例子.zip

    这个名为“XML实践例子.zip”的压缩包文件包含了一系列与XML相关的实践示例,是学习XML的宝贵资源。 首先,我们看到一个名为“2016112700.dtd”的文件,这代表了一个文档类型定义(Document Type Definition)。DTD...

    XMLDemo2学习研究例子.rar

    "XMLDemo2学习研究例子.rar"是一个压缩包,包含了关于XML的实践应用示例,可能是用于教学或自我学习的目的。 在Web开发中,"web.xml"是一个特别重要的文件,它被称为Servlet配置文件,是Java Web应用程序的部署描述...

    xml一个例子这是一个用来看看xml 的demo

    XML起源于HTML,但其主要区别在于HTML用于展示数据,而XML则专注于描述数据。XML文档是自描述的,这意味着每个XML文档都包含有关其内容的信息。XML文档由元素、属性、文本和注释等组成,这些组件共同构成了一种规范...

    xml和xsl的练习例子

    2. **掌握XPath**:学会使用XPath表达式来选取XML文档中的特定节点,这对于XSLT的模板匹配至关重要。 3. **编写XSLT样式表**:通过练习编写XSLT模板,了解如何进行元素、属性的复制、选择和转换,以及如何处理条件...

    XML操作文档及使用例子程序(一个完整的例子)

    2. **XPath**:XPath是用于在XML文档中查找信息的语言。通过XPath,你可以定位到XML文档中的特定元素、属性或者文本。在Java中,可以使用`javax.xml.xpath`包中的`XPathFactory`和`XPath`类来执行XPath表达式。 3. ...

Global site tag (gtag.js) - Google Analytics