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