Hi Raymond,

        It does that because you are creating multiple DOM documents and each 
one of those has an XML declaration. You do that here:

>        DOMDocument* document = implement->createDocument(0, 
> XMLString::transcode("S_RPS"), 0);



If you move that line and the next:

>        DOMElement* rootElement = document->getDocumentElement();

out of the loop then you will create 1 document with all the <c_id> elements 
inside inside a single <S_PRS> root element.

Cheers,

Gareth



On 16 Dec 2010, at 18:17, Steele, Raymond wrote:

> Hello,
> 
> Using Xerces 3.1.0-C++, I am creating a DOMDocument to stdout.  I am trying 
> to retrieve all the records in a .data file, which is in the form of a C 
> struct.  Each record has multiple records with many elements. When I run the 
> application, the XML Declaration is repeated for each record. I do not like 
> this behavior and cannot figure out how to stop it. Can someone shed some 
> light? Thanks in advance. Here is a sample of the code.
> 
> XMLPlatform::Initialize ();
> DOMImplmentation* implement = 
> DOMImplementationRegistry::getDOMImplementation(XMLString:transcode("Core"));
> 
> for ( int i=0; i<5; i++)
> {
>        DOMDocument* document = implement->createDocument(0, 
> XMLString::transcode("S_RPS"), 0);
>        DOMElement* rootElement = document->getDocumentElement();
> 
>        DOMElement* c_id = 
> document->createElement(XMLString::transcode("c_id"));
>        string new_c_id(struct_name[i].c_id, sizeof(struct_name[i].c_id));
>        c_id->setTextContent(XMLString::transcode(new_c_id.c_str()));
>        rootElement->appendChild(c_id)
> 
>        DOMLSSerializer* serializer = 
> (DOMImplementationLS*)implement)->createLSSerializer();
>        DOMLSOutput* output = 
> ((DOMImplementationLS*)implement)->createLSOutput();
>        DOMConfiguration* config = serializer->getDomConfig();
>        config->setParameter(XMLuni::fgDOMWRTFormatPrettyPrint, true);
>        StdOutFormatTarget* target = new StdOutFormatTarget();
>        output->setByteStream(target);
>        serializer->write(document, output);
> 
>        delete target;
>        output->release();
>        serializer->release();
> }
> 
> This will produce:
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <S_RPS>
> 
>        <c_id>AA</c_id>
> 
> </S_RPS>
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <S_RPS>
> 
>        <c_id>AA</c_id>
> 
> </S_RPS>
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <S_RPS>
> 
>        <c_id>AA</c_id>
> 
> </S_RPS>
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <S_RPS>
> 
>        <c_id>AA</c_id>
> 
> </S_RPS>
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <S_RPS>
> 
>        <c_id>AA</c_id>
> 
> </S_RPS>
> 
> Why does it keep repeating the <?xml version="1.0" encoding="UTF-8" 
> standalone="no" ?> ?
> 
> Thanks!
> 
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 

-- 
Gareth Reakes, CTO         WE7 - Great Music, Free
+44-20-7117-0809                    http://www.we7.com

“The music business is a cruel and shallow money trench, a long plastic hallway 
where thieves and pimps run free, and good men die like dogs. There's also a 
negative side. “
- Hunter S. Thompson



Reply via email to