Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XSLT将XML转换为HTML,输入和输出字符串而不是文件_Xml_String_Xslt_Javax - Fatal编程技术网

使用XSLT将XML转换为HTML,输入和输出字符串而不是文件

使用XSLT将XML转换为HTML,输入和输出字符串而不是文件,xml,string,xslt,javax,Xml,String,Xslt,Javax,我已经学习了一些XSLT教程,它们都讨论了如何使用输入和输出文件;在我的具体例子中,XML和XSL都是字符串——我在运行时从数据库中读取它们,它会根据我处理的记录而变化 有没有一种方法可以进行某种转换来操作StreamSource,给它实际的字符串而不是文件名 我说的是: TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.

我已经学习了一些XSLT教程,它们都讨论了如何使用输入和输出文件;在我的具体例子中,XML和XSL都是字符串——我在运行时从数据库中读取它们,它会根据我处理的记录而变化

有没有一种方法可以进行某种转换来操作StreamSource,给它实际的字符串而不是文件名

我说的是:

        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());
}
}

我自己也是这样做的,我经常给出简单的答案,假设人们知道基本知识。让他们做些工作很好。但有时我会松懈下来,带他们踏上人生的下一步。我自己也是这样做的,我经常给出简短的答案,假设人们知道基本情况。让他们做些工作很好。但有时我会松懈下来,带他们踏上旅程的下一步。