Java 通过xslt将xml转换为文本文件时引发异常
我的代码如下所示:Java 通过xslt将xml转换为文本文件时引发异常,java,xml,xslt,transformer,Java,Xml,Xslt,Transformer,我的代码如下所示: protected String[] parseXMLRecievedMsg(StringBuffer iSB_plainMessage) throws Exception { Source xslt = new StreamSource(new File("sample.xslt")); TransformerFactory transFact = TransformerFactory.newInstance(); Transformer tr
protected String[] parseXMLRecievedMsg(StringBuffer iSB_plainMessage) throws Exception {
Source xslt = new StreamSource(new File("sample.xslt"));
TransformerFactory transFact = TransformerFactory.newInstance();
Transformer transformer = transFact.newTransformer(xslt);
StringWriter outWriter = new StringWriter();
StreamResult lS_outputMsgBody = new StreamResult( outWriter );
iSB_plainMessage =iSB_plainMessage.delete(0,iSB_plainMessage.indexOf("\n"));
iSB_plainMessage =iSB_plainMessage.reverse();
iSB_plainMessage =iSB_plainMessage.delete(0, iSB_plainMessage.indexOf("\n"));
iSB_plainMessage =iSB_plainMessage.reverse();
StringBuilder SB_plainMessage = new StringBuilder(iSB_plainMessage.toString());
SB_plainMessage.insert(0,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r");
Source lSB_MessageInput = new StreamSource(SB_plainMessage.toString());
transformer.setOutputProperty(OutputKeys.METHOD, "text");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.transform(lSB_MessageInput, lS_outputMsgBody);
return new String []{ lS_outputMsgBody.getWriter().toString()};
受保护字符串[]ParseXmlReceiveDMSG(StringBuffer iSB_plainMessage)引发异常{
Source xslt=newstreamsource(新文件(“sample.xslt”);
TransformerFactory transFact=TransformerFactory.newInstance();
变压器=变压器新变压器(xslt);
StringWriter outWriter=新StringWriter();
StreamResult lS_outputMsgBody=新的StreamResult(outWriter);
iSB_plainMessage=iSB_plainMessage.delete(0,iSB_plainMessage.indexOf(“\n”);
iSB_plainMessage=iSB_plainMessage.reverse();
iSB_plainMessage=iSB_plainMessage.delete(0,iSB_plainMessage.indexOf(“\n”);
iSB_plainMessage=iSB_plainMessage.reverse();
StringBuilder SB_plainMessage=新的StringBuilder(iSB_plainMessage.toString());
SB_明文。插入(0,“\r”);
Source lSB_MessageInput=new StreamSource(SB_plainMessage.toString());
transformer.setOutputProperty(OutputKeys.METHOD,“text”);
transformer.setOutputProperty(OutputKeys.ENCODING,“UTF-8”);
transformer.transform(lSB_消息输入,lS_输出MsgBody);
返回新字符串[]{lS_outputMsgBody.getWriter().toString()};
`
我试图将收到的xml消息转换为文本文件。
我一直得到以下例外
java.io.FileNotFoundException:C:\alltra\u apps\BIC\base\u domain\AllNetImport\
(文件名、目录名或卷标语法不正确)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:120)
位于java.io.FileInputStream。(FileInputStream.java:79)
位于sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
位于sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
位于org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(未知源)
位于org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(未知源)
位于org.apache.xerces.parsers.XML11Configuration.parse(未知源)
位于org.apache.xerces.parsers.XML11Configuration.parse(未知源)
位于org.apache.xerces.parsers.XMLParser.parse(未知源)
位于org.apache.xerces.parsers.AbstractSAXParser.parse(未知源)
位于com.sun.org.apache.xalan.internal.xsltc.dom.xsltcdtmanager.getDTM(xsltcdtmanager.java:440)
位于com.sun.org.apache.xalan.internal.xsltc.dom.xsltcdtmanager.getDTM(xsltcdtmanager.java:234)
位于com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:524)
位于com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:709)
位于com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
StreamSource
构造函数的重载采用字符串()需要一个带有URI的字符串
,而您似乎要传入一个带有动态构造的XML的字符串。如果要读取带有XML的字符串
,请在字符串读取器
上构造一个流源
,然后在该字符串
上构造一个流源
(lSB_消息输入,lS_输出MsgBody);