1

我正在使用 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 文件。在我的情况下,我不知道应该使用哪个文件。<?xsl-stylesheet?>相反,我希望转换器从原始 XML 中的处理指令中获取这些信息。JDK6和Saxon有可能吗?

4

2 回答 2

3

Xalan 可以做到这一点,检查一下。可能是撒克逊人以及它的方法javax.xml.transform.TransformerFactorygetAssociatedStylesheet

于 2011-07-01T19:07:32.377 回答
1

感谢@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));
于 2011-07-01T19:21:09.323 回答