Re: [xml] Dump document to a buffer without xml version
- From: Daniel Veillard <veillard redhat com>
- To: Iñigo Martínez <inigomartinez gmail com>
- Cc: xml gnome org
- Subject: Re: [xml] Dump document to a buffer without xml version
- Date: Fri, 22 Aug 2014 12:34:40 +0800
On Wed, Aug 20, 2014 at 07:04:06PM +0200, Iñigo Martínez wrote:
Hi:
I'm working with a protocol based on XML, something like:
<Command Timestamp="0" ReceptionTimeStamp="0" Sender="P1"
Receiver="P2"><GetData/></Command>
I can successfully parse these messages using xmlReadMemory and
navigating through the tree. When trying to create my own messages I
can create them successfully this way:
doc = xmlNewDoc(NULL);
node = xmlNewNode(NULL, BAD_CAST "Command");
xmlDocSetRootElement(doc, node);
xmlNewProp(node, BAD_CAST "Timestamp", BAD_CAST "0");
xmlNewProp(node, BAD_CAST "ReceptionTimestamp", BAD_CAST "0");
xmlNewProp(node, BAD_CAST "Sender", BAD_CAST "P1");
xmlNewProp(node, BAD_CAST "Receiver", BAD_CAST "P2");
xmlNewChild(node, NULL, BAD_CAST "GetData", NULL);
The problem comes when trying to get the correspondant string as I get
the xml version in the output:
<?xml version="1.0"?><Command Timestamp="0" ReceptionTimeStamp="0"
Sender="P1" Receiver="P2"><GetData/></Command>
I have seen some tricks using a xmlTextWriter, but in my case I need
an string not a file.
Is there any way to avoid it ?
Best way is to use the 'new' saving APIs
http://xmlsoft.org/html/libxml-xmlsave.html#xmlSaveToBuffer
with XML_SAVE_NO_DECL in the option
and use
http://xmlsoft.org/html/libxml-xmlsave.html#xmlSaveDoc
if you are piling up such messages on an IO just use anothe xmlSaveTo...
function and Flush to output instead of writing in memory and doing
the I/O separately
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard redhat com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]