2017-03-03 3 views
0

にするStreamResultに変換:のJava:JavaのDOMへの結果のXMLを変換するものした後、さらにそれで動作するように、私はサクソンとXSLTで別のXML形式からXSLT変換を行っておりますDOM

System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); 
TransformerFactory tFactory = TransformerFactory.newInstance(); 

Transformer transformer = tFactory.newTransformer(new StreamSource(new File("xslt.xsl"))); 
transformer.transform(new StreamSource(new File(inputXML)), 
            new StreamResult(new File (outputXML))); 

DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document document = documentBuilder.parse(outputXML); 

何Iこの状況で好きではない、中間outputXMLファイルを作成しています。その作成を避けることは可能ですか?

+2

使用[ 'DOMResult'](https://docs.oracle.com/javase/8/docs/api/javax/xml:誰かが興味を持っている場合は、私の場合は、結果のコードスニペットは、このように見えました/transform/dom/DOMResult.html)。ドキュメントをお読みください。少し研究*してください。 – Andreas

+0

わかりません。終日ソリューションを求めていた。たぶん私はプログラミングにはあまりにも愚かです:( – Vitaliy

+0

アンドレアス、おそらく答えに移動する必要があります – MeBigFatGuy

答えて

0

DocumentResult result = new DocumentResult();

transformer.transform(新しいStreamSource(新しいファイル(inputXML))、結果);

Document transformedDoc = result.getDocument();

0

回答は@Andreasによって提供されました。

System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); 
TransformerFactory tFactory = TransformerFactory.newInstance(); 

DOMResult xmlResult = new DOMResult(); 
Transformer transformer = tFactory.newTransformer(new StreamSource(new File("xslt.xsl"))); 
     transformer.transform(new StreamSource(new File(outputXML)), 
           xmlResult); 

Document document = (Document) xmlResult.getNode(); 
関連する問題