Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过xslt将xml转换为文本文件时引发异常_Java_Xml_Xslt_Transformer - Fatal编程技术网

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);