2011-07-07 45 views
3

我有一块这样的代码。我发现myResults = writer.getBuffer().toString();会为某些用例返回一个EMPTY STRING,但不会用于其他用例。什么会导致javax.xml.transform.Transformer.transform()返回空字符串

我看着服务器,但在xml文件中没有看到任何特殊字符。 会导致transformer.transform()出错,myResults = writer.getBuffer().toString();会返回一个空字符串?它不返回null,只是一个空字符串。

StringWriter writer = new StringWriter(); 
    Result result = new StreamResult(writer); 
    try{ 
     transformer.transform(new StreamSource(theInputStream), result); 
    }catch (Exception e) { 
     e.printStackTrace(); 
    } 

    myResults = writer.getBuffer().toString(); 

非常感谢,

+0

你确定源文件实际上可以转换为基于xslt的东西吗? – nos

+0

我认为应该。我能够翻译为某些用例返回的Feed,而不是其他用例。如何验证源文档是否有任何问题?谢谢。 – dojomedojo

+0

尝试捕获TransformerException。您也可以验证xml,但您需要一个xsd(模式定义)文件才能这样做。 [Java XML验证API](http://www.ibm.com/developerworks/xml/library/x-javaxmlvalidapi/index.html) – L4zl0w

回答

0

我遇到了这个最近的,但我不知道如果同样的情形。

我在Windows上开发并部署到Linux机器上。在我的Windows机器上,所有的东西都可以正常转换,但是在那里可以转换文件的Linux机器上,以及可以生成空文件的文件。我终于找到答案在Xslt变换的结尾。将行结束符更改为Linux样式行结束符后,转换工作正常。

希望这会有所帮助。

相关问题