2011-02-24 52 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