2011-07-07 46 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樣式行結束符後,轉換工作正常。

希望這會有所幫助。

相關問題