I used the transformer code mentioned in below link to convert xml element and its child to xml string
How to convert xml Element and its child nodes into String in Java?
The problem is i am seeing some weird characters , only first element text content is in plain text rest is some weird encoding
For quick reference here is the code
Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(node);
transformer.transform(source, result);
String xmlString = result.getWriter().toString(); System.out.println(xmlString);
Input looks like below
<Info ID="_65ae9406-63c9-4fd5-93a0-5ab1b5a3f3c7"
IssueInstant="2012-02-11T09:53:52.722Z" Version="2.0"
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<Issuer>https://localhost:8080/</Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<ds:Reference URI="#_65ae9406-63c9-4fd5-93a0-5ab1b5a3f3c7">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<ds:DigestValue>IDHt1dgdR9k/toaocOxCVMiJhPjqRPyNSou4ywBA2YM=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>o5lTezATnGX+sllItfElMuabaFlpBed8wc8lAieigQ4JiIsgjIdHbg7gyyCpgk</ds:SignatureValue>
<ds:Signature></Info>