创建XML文档的方法是创建一个完整的内存DOM模型,并使用IXMLDocument::save方法将其存储到文件中。为了格式化这些文档,我使用了创建一个完全由换行符和制表符组成的文本节点的技巧。这个技巧在节点内部运行良好,但在文档级别却失败了。因此,我得到了如下部分对齐的文档:
<?xml version="1.0" encoding="UTF-8"?><!--Main Comment--><Root>
<InputFile>
<FileName>Part1</FileName>
<FileDirectory>D:\Document Folder\Testing</FileDirectory>
</InputFile>
. . . . .
</Root>
在主注释之前和根节点之前插入换行符还有其他技巧吗?我更喜欢仅限于C++ DOM接口的解决方案,并且不涉及外部工具或库。
发布于 2022-06-26 07:27:41
下面是基于XSLT的解决方案。
它使用的是所谓的身份转换模式。
indent="yes"
属性将缩进整个XML。
XSLT
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="utf-8" omit-xml-declaration="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
https://stackoverflow.com/questions/72758346
复制