Try the following code.

ByteArrayOutputStream bao=new ByteArrayOutputStream();
XMLSerializer s = new XMLSerializer();
s.setOutputByteStream(bao);
s.serialize(fDocument);                // fDocument is xml document
System.out.println(bao.toString());

Jim O'Neill
Ducat Commerce, LLC
www.ducatcommerce.com




-----Original Message-----
From: RHS Linux User <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Wednesday, February 09, 2000 10:22 AM
Subject: Re: Retrieving XML Doc from DOM as a string


>
>Actually, if you're using or overwise want to download the Xerces-C
>distribution, there is a program in the "samples" directory called
>"DOMPrint.cpp" that is exactly like your program below.  Guess there isn't
>anything like it currently built into Xerces...
>
>-- HSN
>
>On Wed, 9 Feb 2000, Kenneth Ramirez wrote:
>
>>
>>
>> I convinced the organization that I'm currently consulting to start using
Xerces
>> in our middle tier to return data retrieved from the database to the
browser.
>> We actually have to first go through an ASP page before hitting the
browser
>> (since the site is managed with IIS).  In order to return the XML
document to
>> the active server page, we're placing our data first into a DOM so that
it
>> creates the structure for us, then we pull out the XML document as a
string and
>> return it to the ASP.  Here is the problem, I could not find a way to
retrieve
>> the code from the XML document as a string, so I had to write my own.  Am
I
>> missing something, or am I correct in assuming that there is no way of
pulling
>> the data out from the DOM as a string?  I'd expect that there would be
some
>> method on the DOM as follows:
>>
>>      Document doc = ...; // Get the document and fill it with the XML
data.
>>      String xmlDocAsString = doc.getXMLDocAsString();
>>      return xmlDocAsString;
>>
>> I went ahead and wrote my own, based on an example that I found on the
IBM
>> development site in the Java/XML tutorial.  The following is the code
that I
>> wrote, which I hope is included into the Xerces implementation if the
>> functionality is not there yet.  I'm sure that others will have a similar
need:
>>
>>           String getXMLDocAsString(Node node)
>>           {
>>                String str = new String();
>>
>>                int type = node.getNodeType();
>>                switch (type)
>>                {
>>                  case Node.DOCUMENT_NODE:
>>                  {
>>                    str = str.concat("<?xml version=\"1.0\" ?>");
>>                    str =
>> str.concat(getXMLDocAsString(((Document)node).getDocumentElement()));
>>                    break;
>>                  }
>>
>>                  case Node.ELEMENT_NODE:
>>                  {
>>                    str = str.concat("<");
>>                    str = str.concat(node.getNodeName());
>>                    NamedNodeMap attrs = node.getAttributes();
>>                    for (int i = 0; i < attrs.getLength(); i++)
>>                    {
>>                      Node attr = attrs.item(i);
>>                      str = str.concat(" " + attr.getNodeName() +  "=\"" +
>> attr.getNodeValue() +  "\"");
>>                    }
>>                    str = str.concat(">");
>>
>>                    NodeList children = node.getChildNodes();
>>                    if (children != null)
>>                    {
>>                      int len = children.getLength();
>>                      for (int i = 0; i < len; i++)
>>                        str =
str.concat(getXMLDocAsString(children.item(i)));
>>                    }
>>
>>                    break;
>>                  }
>>
>>                  case Node.ENTITY_REFERENCE_NODE:
>>                  {
>>                    str = str.concat("&");
>>                    str = str.concat(node.getNodeName());
>>                    str = str.concat(";");
>>                    break;
>>                  }
>>
>>                  case Node.CDATA_SECTION_NODE:
>>                  {
>>                    str = str.concat("<![CDATA[");
>>                    str = str.concat(node.getNodeValue());
>>                    str = str.concat("]]>");
>>                    break;
>>                  }
>>
>>                  case Node.TEXT_NODE:
>>                  {
>>                    str = str.concat(node.getNodeValue());
>>                    break;
>>                  }
>>
>>                  case Node.PROCESSING_INSTRUCTION_NODE:
>>                  {
>>                    str = str.concat("<?");
>>                    str = str.concat(node.getNodeName());
>>                    String data = node.getNodeValue();
>>                    {
>>                      str = str.concat(" ");
>>                      str = str.concat(data);
>>                    }
>>                    str = str.concat("?>");
>>                    break;
>>                  }
>>                }
>>
>>                if (type == Node.ELEMENT_NODE)
>>                {
>>                  str = str.concat("</");
>>                  str = str.concat(node.getNodeName());
>>                  str = str.concat(">");
>>                }
>>
>>                return str;
>>           }
>>
>> Thanks,
>>
>> Ken Ramirez (Master-Mind Consulting Services, Inc. -
[EMAIL PROTECTED] or
>> www.mastermind.com)
>>
>>
>>
>>
>
>

Reply via email to