Scott Cantor wrote:

>   
>> You don't happen to have a code snippet around that does exactly that
>> (Java)?
>>     
>
> I don't do Java any more (see headache above). The xmltooling code underneath 
> opensaml-j, which I didn’t write, has helper routines that provide one way to 
> do it, and they appear to use a DOM3 LSSerializer:
>
> public static void writeNode(Node node, Writer output) {
>     DOMImplementation domImpl = node.getOwnerDocument().getImplementation();
>     DOMImplementationLS domImplLS = (DOMImplementationLS) 
> domImpl.getFeature("LS", "3.0");
>     LSSerializer serializer = domImplLS.createLSSerializer();
>     LSOutput serializerOut = domImplLS.createLSOutput();
>     serializerOut.setCharacterStream(output);
>     serializer.write(node, serializerOut);
> }
>
> There's also a pretty-print version that seems to be similar to what you're 
> doing but not exactly the same.
>   


I was just about to send this out, but Scott beat me to it. :-)  Here's
where that code comes from:

http://svn.middleware.georgetown.edu/view/trunk/src/org/opensaml/xml/util/XMLHelper.java?root=java-xmltooling&view=markup


It's often  used via the nodeToString():

     public static String nodeToString(Node node) {
        StringWriter writer = new StringWriter();
        writeNode(node, writer);
        return writer.toString();
    }



These 2 methods are by and large how we serialize DOM elements in the
Java version of OpenSAML, and seems to work quite successfully with
signature and encryption.

--Brent

Reply via email to