2011-02-24 79 views
3

我的應用程序使用XForms進行查看,XForms生成包含用戶給出的答案的輸出XML。如果我們包含以下行如何獲取java代碼,Xform引擎生成的輸出XML

<fr:xforms-inspector xmlns:fr="http://orbeon.org/oxf/xml/form-runner"/> 

在代碼中我們可以看到屏幕上產生的輸出。因此,如果用戶輸入amit,那麼對於用戶名,它也會與生成的XML一起提供。

我其實想要在我的Java類中獲得這個生成的XML,以將它保存在數據庫中並解析它並拆分它的內容。我已經嘗試了下面的代碼來獲取該XML,但無法獲取生成的XML。

BufferedReader requestData = new BufferedReader(new InputStreamReader(request.getInputStream())); 
StringBuffer stringBuffer = new StringBuffer(); 
String line; 
try{ 
    while ((line = requestData.readLine()) != null) { 
    stringBuffer.append(line); 
    } 
} catch (Exception e){} 
    return stringBuffer.toString(); 
} 

請讓我知道我在做什麼錯。

回答

0

假設您希望在一個servlet或JSP內部有Java代碼,它接收通過XForms提交發送到servlet或JSP的XML,那麼我建議您使用XML解析器解析它,而不是手動執行此操作。用Dom4j做這件事很簡單;例如,以獲得根元素的內容(假設您收到的所有與它的一些文本元素):

Document queryDocument = xmlReader.read(request.getInputStream()); 
String query = queryDocument.getRootElement().getStringValue(); 

以供參考,看看這是取自實例的full source