Как получить в Java-код, сгенерированный выходной XML с помощью движка Xform - PullRequest
3 голосов
/ 24 февраля 2011

Мое приложение использует XForms для просмотра, а XForms генерирует выходной XML, содержащий ответ, данный пользователем. Если мы включим следующую строку

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

в коде мы можем увидеть сгенерированный вывод на экране. Так что для имени пользователя, если тип пользователя amit, он также будет поставляться с сгенерированным XML.

Я действительно хотел получить этот сгенерированный XML в своем классе Java, чтобы сохранить его в базе данных, проанализировать и разделить его содержимое. Я пробовал следующий код для получения этого 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();
}

Пожалуйста, дайте мне знать, что я делаю неправильно.

1 Ответ

0 голосов
/ 24 февраля 2011

Предполагая, что вы хотели бы иметь Java-код внутри сервлета или JSP, который получает XML, отправленный сервлету или JSP через отправку XForms, тогда я бы порекомендовал вам проанализировать его с помощью анализатора XML, а не делать это вручную. Сделать это с Dom4j довольно просто; например, чтобы получить содержимое корневого элемента (при условии, что все, что вы получаете, это элемент с некоторым текстом в нем):

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

А для справки см. полный источник примера, из которого взята.

...