当前位置: 首页 > 知识库问答 >
问题:

通过xslt使用从xml到文本文件的转换时引发异常

黄飞翮
2023-03-14

我的代码如下所示:

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

`

java.io.FileNotFoundException:c:\alltra_apps\bic\base_domain\allNetTimPort\(文件名、目录名或卷标语法不正确)在java.io.FileInputStream.Open(本机方法)在java.io.FileInputStream。(FileInputStream.java:120)在java.io.FileInputStream。(FileInputStream.java:79)在sun.net.www.protocol.file.fileUrlConnection.connect(OM.sun.org.apache.xalan.internal.xsltc.dom.xsltcdtmmanager.getDTM(xsltcdtmmanager.java:234)在com.sun.org.apache.xalan.internal.xsltc.trax.transformerimpl.getDOM(transformerimpl.java:524)在

共有1个答案

皇甫敏达
2023-03-14

StreamSource构造函数的重载使用String(https://docs.oracle.com/javase/8/docs/api/javax/XML/transform/stream/streamSource.html#streamSource-java.lang.String-)需要一个带有URI的String,而您似乎传递了一个带有动态构造的XML的字符串。如果要用XML读取字符串,则在字符串上的StringReader上构造StreamSource

 类似资料:
  • 我想将xml文件格式转换为另一种格式;使用XSL1.0或2.0版。 http://www.w3.org/1999/xsl/transform“version=”1.0“> 这段代码是从“struct”节点的“members”属性中提取相关ID的起点,以后只用于发出“field”节点。 xslt处理器需要解析Struct节点的'members'属性。“members”属性是字段ID的列表。 在上面的

  • 我需要从XML文件中生成一个HTML文件,以便在默认的android浏览器中打开它。(JavaAndroid Studio)。程序应该获得任何通用的XML文件。 请协助。TNX!

  • XML输入文件: XML输入文件转换为XML输出文件。将XML输入文件的firstName、middleName和lastName标签合并为XML Ouput文件的name标签,将XML输入文件的address1、address2、city、state和pincode标签合并为XML Ouput文件的address标签。 我几乎转换了代码,但我在这里与empId作斗争。我已经在XSLT文件中手动输

  • 问题内容: 我想使用xsl文件转换一些xml并以某种方式输出结果(我使用的是Android Api Level 8)。 我当前的活动看起来像这样,但是转换器保持为空。LogCat引发一个with ,表示xml格式不正确,但是我确定它是正确的。 我在LogCat中发现了一条提示,提示在上述错误消息之前。 我究竟做错了什么? 这是要转换的xml文件(source.xml) 这是对应的xsl(produ

  • 我想使用XSLT将一些XML转换为JSON。XML如下所示: 我希望JSON如下所示: 推荐的方法是什么? 我已经有了一个方法,它看起来不太好,因为它只适用于xslt 1.0(我认为)和文本块。请参阅此处:https://xsltfiddle.liberty-development.net/naZYrpy/1 我更喜欢使用xslt 3.0和xml to json函数的更有效方法,但似乎不可能添加额

  • 谈到XSLT,我是一个完全的新手,所以我很难找到解决问题的方法。 我有以下来自PeopleSoft的XML: PeopleSoft"有益地"将所有文本数据放入CDATA部分,我想删除CDATA,并将字符串放在正常的文本节点中: 有人能在我需要创建我想要的输出的XSLT上给我一个正确的方向吗?非常感谢提前