In fact, having tested this, I found that I need a call to chardata() to make this work:
else if (obj instanceof Hashtable) { startElement("struct"); Hashtable struct = (Hashtable) obj; for (Enumeration e = struct.keys(); e.hasMoreElements(); ) { String nextkey = (String) e.nextElement(); Object nextval = struct.get(nextkey); startElement("member"); startElement("name"); //write(nextkey); chardata(nextkey.toString()); Works here anyhow - not sure if it's of use for the community. -- Rob ------- Forwarded message follows ------- From: Rob Walker <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Subject: Probs with & in data Date sent: Mon, 10 Feb 2003 11:37:59 -0000 Ok, I think I've found this one. I'm using a Hashtable, and the keys in my Hashtable can have an "&" in them. Looking at the following code in XmlRpc.java.writeObject(): else if (obj instanceof Hashtable) { startElement("struct"); Hashtable struct = (Hashtable) obj; for (Enumeration e = struct.keys(); e.hasMoreElements(); ) { String nextkey = (String) e.nextElement(); Object nextval = struct.get(nextkey); startElement("member"); startElement("name"); write(nextkey); I suspect that the write(nextkey) should in fact be writeObject(nextkey). -- Rob ------- End of forwarded message ------- Ascert - Taking systems to the Edge [EMAIL PROTECTED] +44 (0)20 7488 3470 www.Ascert.com