C语言xml配置文件换行的方法

1 篇文章 0 订阅

/options参数设定成XML_PARSE_NOBLANKS,否则的话是不会在结点后面添加回车的。/

doc = xmlReadFile(docname, “UTF-8, XML_PARSE_NOBLANKS); //读取xml文件时忽略空格

/把xmlSaveFormatFile的format参数修改成1,否则在使用xmlReadFile打开的xml文件时,在生成的xml文件里是会把所有的结点都放到一行里显示。/

xmlSaveFormatFile (docname, doc, 1);

以上内容转载于:https://blog.csdn.net/yezhen910328/article/details/41280451

方法一:

读取xml采用去除空白的模式,在最后保存时让libxml自动补充空白。

doc = xmlReadFile(docname, "UTF-8", XML_PARSE_NOBLANKS);
// 此处可加入xml增删修改处理... 
nRel = xmlSaveFormatFileEnc(docname, doc, "UTF-8", 1);

这种方法是最简单的,若原来功能已经做好了,只需要修改很少代码就可以达到效果;而且此方法大多数情况下都是有效可行的。

方法二:

插入新节点时,在后面多插入一个Text节点,内容带换行字符"\n";若当前节点没有文本内容,可以设Content内容,同样带"\n"。


node1 = xmlNewNode(NULL,BAD_CAST"DataNode");
node2 = xmlNewText(BAD_CAST "\n            ");
// 此处node1可加入额外属性设置代码...
xmlAddChild(node, node1);
xmlNodeSetContent(node1, BAD_CAST  "\n              ");
xmlAddNextSibling(node1, node2);

方法一无法达到效果,或不能使用NOBLANKS模式,也可以尝试用此方法二;本方法是一定可行的,只是控制上稍微麻烦一些。

转载于:https://www.cnblogs.com/yisonli/p/4186359.html

但是我个人感觉上面的方法二麻烦,可以通过在xmlSaveFormatFile(xmlFileName,doc,1);代码之前需要增加两行代码

xmlKeepBlanksDefault(0) ;//libxml2 global variable .
xmlIndentTreeOutput = 1 ;// indent .with \n 

方法来达到自动换行的效果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值