1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
Simulator lSimulator = simulatorPersistence
.findByPrimaryKey( pIdSimulator );
String lDataXml = getXMLData( pIdSimulator, pEncodeHtml );
String lConfigXml = getXMLConfig( lSimulator.getType(),
pJsonConfigObj );
//ajoute la config xml
DocumentBuilderFactory lDocFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder parser = lDocFactory.newDocumentBuilder();
Document lDataDocument = parser.parse( new InputSource(
new StringReader(
lDataXml ) ) );
Document lConfigDocument = parser.parse( new InputSource(
new StringReader( lConfigXml ) ) );
Document lXML = parser.newDocument();
lXML.createProcessingInstruction(
Result.PI_DISABLE_OUTPUT_ESCAPING, "" );
DocumentFragment fragment = lXML.createDocumentFragment();
fragment.appendChild( lXML.importNode(
lConfigDocument.getDocumentElement(), true ) );
//append data root elt
lXML.appendChild( lXML.importNode(
lDataDocument.getDocumentElement(), true ) );
//append config elt
lXML.getDocumentElement().insertBefore( fragment,
lXML.getDocumentElement().getFirstChild() );
//document to string
Source source = new DOMSource( lXML );
StringWriter stringWriter = new StringWriter();
Result result = new StreamResult( stringWriter );
TransformerFactory ff = TransformerFactory.newInstance();
//J'ai essaié ça ci-dessous mais ca fait planter
ff.setAttribute( Result.PI_DISABLE_OUTPUT_ESCAPING, Boolean.TRUE );
Transformer transformer = ff.newTransformer();
transformer.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION,
"yes" );
transformer.transform( source, result );
return stringWriter.getBuffer().toString(); |
Partager