xslt - How to read a file in current directory through Java Class in another directory -
i working on linux os.
i facing trouble parsing & transforming xml file though java.
location of java xmltransform.class: /home/apps/source (this path present in classpath) location of xml file (working directory): /home/apps/nk/working/payload.xml
when inside "working directory", invoking xmltransform.class passing xml filename payload.xml getting following error:
xml-22004: (fatal error) error while parsing input xml document (invalid inputsource.). --------- oracle.xml.parser.v2.xmlparseexception: invalid inputsource. @ oracle.xml.parser.v2.xmlerror.flusherrors1(xmlerror.java:320) @ oracle.xml.parser.v2.xmlreader.pushxmlreader(xmlreader.java:248) @ oracle.xml.parser.v2.xmlparser.parse(xmlparser.java:202) @ oracle.xml.jaxp.jxtransformer.transform(jxtransformer.java:321) @ transformationengine.main(transformationengine.java:30)
it clear class not able resolve file name.
please give pointers how can resolve this?
note: invoice_transformer.xsl placed in same directory .class file , class file able read it.
java code:
import javax.xml.transform.*; import java.io.*; public class transformationengine { public static void main(string[] args){ string payloadfilename = args[0]; string xslfile = "invoice_transformer.xsl"; inputstream = java.lang.classloader.getsystemresourceasstream(xslfile); inputstream pfis = java.lang.classloader.getsystemresourceasstream(payloadfilename); try{ transformerfactory tfactory = transformerfactory.newinstance(); transformer transformer = tfactory.newtransformer(new javax.xml.transform.stream.streamsource(is)); transformer.transform(new javax.xml.transform.stream.streamsource(pfis),new javax.xml.transform.stream.streamresult(new fileoutputstream("idmpayload.csv"))); } catch(exception e){ e.printstacktrace(); } } }
getsystemresourceasstream()
looks resource in classpath. don't have /home/apps/nk/working/
in classpath (do you?).
instead use fileinputstream (as suggested @banthar )
Comments
Post a Comment