2013-10-28 41 views
0

我必須做xsl轉換,其中我將通過示例輸入xml來最終實現最終轉換xml,我已經使用java api編寫了一個變壓器程序,可以請一些機構建議卡尼怎麼寫一樣的,所以它與xalan的API 2.7.1也適用,下面是JAA,我需要將它與xalan的兼容使用Xalan APi進行XSLT處理2.7.1

import javax.xml.transform.*; 
import javax.xml.transform.stream.StreamResult; 
import javax.xml.transform.stream.StreamSource; 
import java.io.File; 
import java.io.IOException; 
import java.net.URISyntaxException; 

public class TestMain { 
    public static void main(String[] args) throws IOException, URISyntaxException, TransformerException { 
     TransformerFactory factory = TransformerFactory.newInstance(); 
     Source xslt = new StreamSource(new File("transform.xslt")); 
     Transformer transformer = factory.newTransformer(xslt); 

     Source text = new StreamSource(new File("input.xml")); 
     transformer.transform(text, new StreamResult(new File("output.xml"))); 
    } 
} 

回答

1

你需要使用的Xalan 的API轉換代碼 API的標準javax.xml.transform,沒有什麼可以改變的。如果Xalan的是在你的應用的classpath然後

TransformerFactory.newInstance(); 

將創建一個Xalan的變壓器,而不是使用Java內置的實現(這是本身的Xalan的一個分支)。如果你想強制執行一個特定的變壓器,然後使用雙參數形式

TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl", null); 
+0

非常感謝.. !!你也可以請將我的例子轉換爲xalan特定的,這將是一個很好的幫助,在此先感謝 –

+0

@sonumkumar就像我說的,沒有什麼可以改變 - 如果Xalan在您的應用程序的類路徑上,那麼您當前的代碼將自動使用它。 –