You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xerces.apache.org by René Schindhelm <sc...@gmail.com> on 2016/11/19 21:54:46 UTC

Serializing with DOM tree using DOMLSSerializer adds empty lines between elements in output file

Hi,

I serialized some of my program's data to XML using the DOM Load-and-Save
Serializer.
Because I want it more human readable, I set the "pretty print"
configuration option of the serializer to enabled.


domOutput_->setSystemId(destination.c_str());

if
(domSerializer_->getDomConfig()->canSetParameter(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint,
true)) {

domSerializer_->getDomConfig()->setParameter(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint,
true);
}

const auto ns = L"http://www.example.com/";
auto document = domImplementation_->createDocument();

auto root = document->createElementNS(ns, L"customer");
root->setAttributeNS(L"http://www.w3.org/2000/xmlns/", L"xmlns:xsi", L"
http://www.w3.org/2001/XMLSchema-instance");
root->setAttributeNS(L"http://www.w3.org/2000/xmlns/",
L"xsi:schemaLocation", L"http://www.example.com/ customer.xsd");
document->appendChild(root);

auto element = document->createElementNS(ns, L"id");
element->setTextContent(std::to_wstring(customer_->getID()).c_str());
root->appendChild(element);

element = document->createElementNS(ns, L"firstName");
xstring = transcodeNString(customer_->getFirstName().c_str());
element->setTextContent(xstring);
releaseWString(xstring);
root->appendChild(element);

element = document->createElementNS(ns, L"lastName");
xstring = transcodeNString(customer_->getLastName().c_str());
element->setTextContent(xstring);
releaseWString(xstring);
root->appendChild(element);

domSerializer_->write(document, domOutput_);


When I take a look at the generated XML file, I see that the node
indentation works just fine, but between each element, an empty line got
added:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<customer xmlns="http://www.example.com/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.example.com/ customer.xsd">

  <id>1</id>

  <firstName>Max</firstName>

  <lastName>Mustermann</lastName>

</customer>


I paste the binary for this file as an image here, so you can inspect it.
http://fs5.directupload.net/images/161119/mu2hi9qs.png

How can I fix the output to not show those blanks?

Thank you.