Hi,
I am trying to serialize from DOM to SAX using XMLSerializer. It hangs.
However,if I serialize and direct to standard out, it works. I do not know what
is wrong with it ? OR is there any way we can convert from DOM to SAX source.
Please find the attached java and xml files.
Thanks
Ajay
<Doc:Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Doc="urn:swift:xsd:swift.eni$camt.028.001.02">
<Doc:camt.028.001.02>
<Doc:Assgnmt>
<Doc:country1>USA</Doc:country1>
<Doc:country2>CHINA</Doc:country2>
<Doc:country3>BELGIUM</Doc:country3>
</Doc:Assgnmt>
</Doc:camt.028.001.02>
</Doc:Document>
import java.io.*;
import javax.xml.parsers.DocumentBuilderFactory ;
import javax.xml.parsers.DocumentBuilder ;
import javax.xml.parsers.ParserConfigurationException ;
import org.apache.xml.serialize.XMLSerializer;
import org.xml.sax.InputSource;
import org.w3c.dom.Document;
import javax.xml.transform.sax.SAXSource;
public class PrintDOMTree {
public static void main(String[] args) {
try {
//InputSource source = new InputSource(args[0]);
Document document= null;
try
{
DocumentBuilderFactory dFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
try
{
document = dBuilder.parse( new FileInputStream(args[0]));
}
catch( Exception e)
{
System.out.println(e.toString());
}
}
catch (Exception e)
{
System.out.println();
System.out.println(e.toString());
}
PipedOutputStream pos = new PipedOutputStream();
PipedInputStream pis = new PipedInputStream();
pis.connect(pos);
XMLSerializer serializer = new XMLSerializer();
SAXSource source = new SAXSource( new InputSource(pis) );
serializer.setOutputByteStream(pos);
//serializer.setOutputByteStream(System.out);
System.out.println("debug1");
serializer.serialize(document);
System.out.println("debug2");
} catch (Exception e) {
e.printStackTrace();
}
}
}