有没有办法在没有双倍行距的情况下制作 Xerces-C 漂亮打印的 XML?

问题描述

我正在使用 xerces-c 编写 XML。认情况下,它将整个 DOM 写为一行文本。我尝试了漂亮的打印选项,如下所示,现在它打印双倍行距 - 在我看来,这不是很漂亮。有没有办法避免双倍行距?

void configureWriter(DOMLSSerializer* writer) {
    writer->getDomConfig()->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint,true);
}

输出

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<MyDocument>

  <A>B</A>

  <D>E</D>

</MyDocument>

解决方法

好的,我找到了答案。有一个不同的选项叫做“fgDOMWRTXercesPrettyPrint”,如果你也关闭这个关闭,那么输出中就没有空行。

void configureWriter(DOMLSSerializer* writer) {
  writer->getDomConfig()->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint,true);
  writer->getDomConfig()->setParameter(XMLUni::fgDOMWRTXercesPrettyPrint,false);
}

输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<MyDocument>
  <A>B</A>
  <D>E</D>
</MyDocument>

这是给我答案的邮件线程:http://mail-archives.apache.org/mod_mbox//xerces-c-users/200908.mbox/%3C4A7697C0.1000304@datadirect.com%3E