使用XSLT将XML转换为HTML,输入和输出字符串而不是文件
我已经学习了一些XSLT教程,它们都讨论了如何使用输入和输出文件;在我的具体例子中,XML和XSL都是字符串——我在运行时从数据库中读取它们,它会根据我处理的记录而变化 有没有一种方法可以进行某种转换来操作StreamSource,给它实际的字符串而不是文件名 我说的是:使用XSLT将XML转换为HTML,输入和输出字符串而不是文件,xml,string,xslt,javax,Xml,String,Xslt,Javax,我已经学习了一些XSLT教程,它们都讨论了如何使用输入和输出文件;在我的具体例子中,XML和XSL都是字符串——我在运行时从数据库中读取它们,它会根据我处理的记录而变化 有没有一种方法可以进行某种转换来操作StreamSource,给它实际的字符串而不是文件名 我说的是: TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(xsl));
StreamSource src = new StreamSource(new FileInputStream(xml));
其中xml和xls都是字符串,包含实际的xml或实际的xsl。使用a和
这是一个MCVE:
package transformStrings;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
public class transformFromStrings {
public static void main(String[] args) throws TransformerException
{
StringReader xmlReader = new StringReader("<x/>");
StreamSource xmlSource = new StreamSource(xmlReader);
StringReader xslReader = new StringReader("<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"><xsl:template match=\"/\">OMG!</xsl:template></xsl:stylesheet>");
StreamSource xslSource = new StreamSource(xslReader);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xslSource);
StringWriter resultWriter = new StringWriter();
transformer.transform(xmlSource, new javax.xml.transform.stream.StreamResult(resultWriter));
System.out.println(resultWriter.toString());
}
}
包转换字符串;
导入java.io.StringReader;
导入java.io.StringWriter;
导入javax.xml.transform.Transformer;
导入javax.xml.transform.TransformerException;
导入javax.xml.transform.TransformerFactory;
导入javax.xml.transform.stream.StreamSource;
公共类转换字符串{
公共静态void main(字符串[]args)引发TransformerException
{
StringReader xmlReader=新StringReader(“”);
StreamSource xmlSource=新的StreamSource(xmlReader);
StringReader xslReader=newStringReader(“OMG!”);
StreamSource xslSource=新的StreamSource(xslReader);
TransformerFactory=TransformerFactory.newInstance();
变压器=工厂新变压器(xslSource);
StringWriter resultWriter=新StringWriter();
transform(xmlSource,新的javax.xml.transform.stream.StreamResult(resultWriter));
System.out.println(resultWriter.toString());
}
}
使用a和
这是一个MCVE:
package transformStrings;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
public class transformFromStrings {
public static void main(String[] args) throws TransformerException
{
StringReader xmlReader = new StringReader("<x/>");
StreamSource xmlSource = new StreamSource(xmlReader);
StringReader xslReader = new StringReader("<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"><xsl:template match=\"/\">OMG!</xsl:template></xsl:stylesheet>");
StreamSource xslSource = new StreamSource(xslReader);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xslSource);
StringWriter resultWriter = new StringWriter();
transformer.transform(xmlSource, new javax.xml.transform.stream.StreamResult(resultWriter));
System.out.println(resultWriter.toString());
}
}
包转换字符串;
导入java.io.StringReader;
导入java.io.StringWriter;
导入javax.xml.transform.Transformer;
导入javax.xml.transform.TransformerException;
导入javax.xml.transform.TransformerFactory;
导入javax.xml.transform.stream.StreamSource;
公共类转换字符串{
公共静态void main(字符串[]args)引发TransformerException
{
StringReader xmlReader=新StringReader(“”);
StreamSource xmlSource=新的StreamSource(xmlReader);
StringReader xslReader=newStringReader(“OMG!”);
StreamSource xslSource=新的StreamSource(xslReader);
TransformerFactory=TransformerFactory.newInstance();
变压器=工厂新变压器(xslSource);
StringWriter resultWriter=新StringWriter();
transform(xmlSource,新的javax.xml.transform.stream.StreamResult(resultWriter));
System.out.println(resultWriter.toString());
}
}
我自己也是这样做的,我经常给出简单的答案,假设人们知道基本知识。让他们做些工作很好。但有时我会松懈下来,带他们踏上人生的下一步。我自己也是这样做的,我经常给出简短的答案,假设人们知道基本情况。让他们做些工作很好。但有时我会松懈下来,带他们踏上旅程的下一步。