我正在使用Transformer执行从XML到XHTML的XSL转换:
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
// ...
Transformer transformer = TransformerFactory.newInstance()
.newTransformer(/* xsl */);
transformer.transform(new StreamSource(xml), new StreamResult(xhtml));在这段代码中,我应该显式提供XSL文件。在我的情况下,我不知道应该使用哪个文件。相反,我希望转换器从原始XML中的<?xsl-stylesheet?>处理指令中获取此信息。可以使用JDK6和撒克逊吗?
发布于 2011-07-02 03:07:32
Xalan可以做到这一点,请查看this。可能是撒克逊人,也是javax.xml.transform.TransformerFactory的方法:getAssociatedStylesheet
发布于 2011-07-02 03:21:09
多亏了@JustYo的建议,我发现它在撒克逊下运行得很好。
System.setProperty("javax.xml.transform.TransformerFactory",
"net.sf.saxon.TransformerFactoryImpl");
StreamSource xmlSource = new StreamSource(xml);
TransformerFactory factory = TransformerFactory.newInstance();
Source xslSource = factory.getAssociatedStylesheet(xmlSource, null, null, null);
Transformer transformer = factory.newTransformer(xslSource);
transformer.transform(xmlSource, new StreamResult(xhtml));https://stackoverflow.com/questions/6551833
复制相似问题