2013-05-29 21 views
6

Mam kod jak:Przekształcenie Stax Źródło w Javie

XMLInputFactory xif = XMLInputFactory.newInstance() 
TransformerFactory tf = TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl", null) 

Transformer t = tf.newTransformer() 
DOMResult result = new DOMResult() 
t.transform(new StAXSource(reader), result) 

która produkuje następujący błąd:

Caught: javax.xml.transform.TransformerException: Can't transform a Source of type javax.xml.transform.stax.StAXSource

Przedmiotem czytelnik jest typu com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl

+0

Więc tu jest problem, że powinienem być w rzeczywistości za pomocą TransformerFactory typu 'org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl'. Niestety, Eclipse nie zapewnia tego dla mnie. Warto również zauważyć analogiczny kod poza Eclipse działa zgodnie z oczekiwaniami. – arlogb

Odpowiedz

4

więc byłem tępo próbowanie niewłaściwej rzeczy. To naprawić go:

System.setProperty("javax.xml.transform.TransformerFactory", 
"com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");