xml缩进和新子的换行符
我有一个看起来像下面的xml文件。
我希望使用函数xmlNewChild()后跟xmlNewProp()将一个名为foo的新子节点添加到节点。 我想生成如下的内容。
但是,我总是最终得到以下结论。
我明白libxml2默认不支持空格。 但是,有没有办法达到我想要的结果? 我需要在新添加的孩子的前面和新行中添加这些标签。
任何帮助,将不胜感激。 谢谢!
问题是XML结构实际上是这样的:
[TEXT:"\n "] [TEXT:"\n "] [TEXT:"\n "] [TEXT:"\n "] [TEXT:"\n"]
如果您只是在子项末尾添加一个额外的元素节点,您可以看到您获得的是不可避免的(因为没有文本节点来携带换行符以及foo3
和children
节点之间所需的缩进)。
您需要编辑子项中的最终文本节点(紧跟在foo2
之后的那个)以给它一个额外的缩进,然后追加新节点,然后附加一个新的文本节点以缩进 。 或者,您可以在子项中插入与先前文本节点相同的文本节点,然后在
children
的最终文本节点之前插入新元素节点。 两者都应该给你相同的结果,你需要的结果:
[TEXT:"\n "] [TEXT:"\n "] [TEXT:"\n "] [TEXT:"\n "] [TEXT:"\n "] [TEXT:"\n"]
另一种方法是让libxml2自动为您输出输出。 这将破坏现有的缩进并从头开始重做。 这是一个相关的答案。