xml+xsl转换为html

项目需要,需要使用xml+xsl转换为html文件存储。

以前也没做过这样的功能,上网搜索到的结果基本上xml和xsl都是以文件的形式保存和输入的,但我这里已经是拿到字符串了,所以考虑是否能直接使用字符串。

通过阅读对应StreamSource的代码发现是完全可行的。

另外大部分网上的示例都可能出现FileNotFoundException异常,还好找到了解决办法。

以下为代码:

	/**
	 * 使用xml+xsl转换成html文件
	 * @param xml xml内容字符串
	 * @param xsl xsl内容字符串
	 * @param htmlFilePath 目标html文件路径
	 */
	private void transformByXSLT(String xml,String xsl,String htmlFilePath){
		TransformerFactory transformerFactory = TransformerFactory.newInstance();

		StringReader xslReader = new StringReader(xsl);
		StreamSource xslSource = new StreamSource(xslReader);

		try {
			Transformer transformer = transformerFactory.newTransformer(xslSource);
			//设置输出文件的字符集
			transformer.setOutputProperty("encoding", "UTF-8");
			StringReader xmlReader = new StringReader(xml);
			StreamSource xmlSource = new StreamSource(xmlReader);

			File htmlFile = new File(htmlFilePath);
			//如果不使用htmlFile.toURI().getPath()的话,可能出现FileNotFoundException
			Result result = new StreamResult(htmlFile.toURI().getPath());
			transformer.transform(xmlSource, result);
		} catch (TransformerConfigurationException e) {
			e.printStackTrace();
		} catch (TransformerException e) {
			e.printStackTrace();
		}
	}

htmlFile.toURI().getPath())这个写法可以避免FileNotFoundException异常,感谢 http://blog.csdn.net/yangxiaonawzy/article/details/5806413 这篇文章。

时间: 2024-10-09 22:43:36

xml+xsl转换为html的相关文章

XML参数转换为Object,并转换为List或DataTable

demo效果: using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Runtime.Serialization.Json; using System.Text; using

一个简单xml数据转换为数组的方法

本人用easywechat做微信回复图文,从数据库中拿到的数据直接是xml拼好的数据,但是框架只有自带的获取xml格式的语句,所有需要将xml数据中所需要的数据拿出来用来拼接. 搜了好多资料说的都很麻烦.ps:可能是我水平不够;-) ok,废话不多说, 上代码: // 以这个xml数据串为例 $xml = "<item><Title><![CDATA[亲爱的顾客:]]></Title><Content><![CDATA[]]>

JavaEE XML XSL转换(XSLT)

XSL转换(XSLT) @author ixenos 定义: XSL转换机制可以指定将XML文档转换为其他格式的规则,例如,txt纯文本.XHTML或其他任何XML格式. 用途: XSLT通常用来将某种机器可读的XML格式转译为另一种机器可读的XML格式,或者将XML转译为适合人类阅读的表示格式 步骤: 1. 需要提供XSLT样式表,它描述了XML文档向某种格式转换的规则 2. XSLT处理器读入XML文档和XSLT样式表,产生所要的输出 XSLT样式表: <?xml version="1

使用VS2013将JSON/XML数据转换为对应的数据实体

VS2013中提供了将JSON数据转换为对应的数据实体类的功能,很大程度上提高开发效率,具体转换步骤如下 1.首先我们需要将需要转换的JSO数据[复制],例如下面这段json数据: { "name": "JSON中国", "url": "http://www.json.org.cn", "page": 88, "isNonProfit": true, "address"

利用sed将xml报文转换为分隔符形式报文

原始xml文本如下 1 <?xml version="1.0" encoding="utf-8"?> 2 <Message> 3 <Header> 4 <Version>2000000</Version> 5 <MessageClass>5</MessageClass> 6 <MessageType>7</MessageType> 7 <SenderId

C++builder XML XSL 代码生成

void __fastcall TFrmGenCode::XSLTxml1Click(TObject *Sender) { // XSLT转换xml文件格式 _di_IXMLDocument xml; _di_IXMLDocument xsl; // Xml::Xmlintf::IXMLDocument _di_IXMLDocument outdoc; // Xml::Xmlintf::IXMLDocument *outdoc = NewXMLDocument(); String f1, f2,

php将xml文件转换为html

test.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</co

PHP将XML数据转换为数组

<?php $s=join(,file('httpapi.elong.comxmlv2.0hotelcn0132701501.xml')); $result = xml_to_array($s); print_r($result); /*函数*/ function xml_to_array($xml) { $array = (array)(simplexml_load_string($xml)); foreach ($array as $key=$item){ $array[$key] = st

xml格式转换为Bean

/** * */ package com.hdrs.ris.law2.large.xml.utils; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.List; /** * 该程序可