[jdom-interest] Request for help: building a document from an InputStream

Bob Tykulsker surftool at pacbell.net
Thu Aug 16 08:41:30 PDT 2001


Hello World,

I have a java application that is listening on a socket.
I am sending XML that looks like:
	<?xml version="1.0" encoding="UTF-8"?>
	<message>
 		<message_name>request_login</message_name>
 		<username>joy</username>
	</message>

I thought I could use code like:
	Buffered Reader	sin    = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
	SAXBuilder  	builder= new SAXBuilder();
	Document    	doc    = builder.build(sin);
in one fell swoop, but application doesn't seem to get anything until
interrupt it, at which point it throws the following exception:
org.jdom.JDOMException: Error on line 8: The XML declaration may only appear
at the very beginning of the document.

I *CAN* work around this by writing the document without newlines, reading
the socket a line at a time
and building the document from a String as per the FAQ:
	while (true) {
		String  	line 		= sin.readLine();

		if (line.indexOf("xml version") != -1) continuue;
		Document doc = new SAXBuilder().build(new StringReader(line));
 	}

Any suggestions?
Thanks in advance,

Bob





More information about the jdom-interest mailing list