Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 9052

Re: how to convert xml file to a string and write that string to another XML file format in XI/PI?

$
0
0

Hi King,

 

You can use below java mapping.

import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.sap.aii.mapping.api.AbstractTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import com.sap.aii.mapping.api.TransformationInput;
import com.sap.aii.mapping.api.TransformationOutput;
public class XMLToStringJavaMap extends AbstractTransformation {  @Override  public void transform(TransformationInput transformationInput, TransformationOutput transformationOutput)  throws StreamTransformationException {  try {  InputStream inputStream = transformationInput.getInputPayload().getInputStream();  byte[] buf = new byte[inputStream.available()];  inputStream.read(buf);  String inputPayloadString = new String(buf, "utf-8");  inputPayloadString = inputPayloadString.replaceAll("\\<\\?xml(.+?)\\?\\>", "").trim();  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  factory.setIgnoringElementContentWhitespace(true);  DocumentBuilder builder = factory.newDocumentBuilder();  Document outputDoc = builder.newDocument();  Element outMsgType = outputDoc.createElement("MT_XMLToString");  outMsgType.setAttribute("ns0", "urn:pi:javamapping:prototype");  outputDoc.appendChild(outMsgType);  Element fileNameElement = outputDoc.createElement("message");  fileNameElement.setTextContent(inputPayloadString);  outMsgType.appendChild(fileNameElement);  Transformer transformer = TransformerFactory.newInstance().newTransformer();  transformer.setOutputProperty("indent", "yes");  transformer.transform(new DOMSource(outputDoc), new StreamResult(transformationOutput.getOutputPayload()  .getOutputStream()));  } catch (Exception e) {  getTrace().addDebugMessage(e.getMessage());  throw new StreamTransformationException(e.getMessage());  }  }
}

Regards,

Praveen.


Viewing all articles
Browse latest Browse all 9052

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>