C语言xml配置文件换行的方法[通俗易懂]

C语言xml配置文件换行的方法[通俗易懂]/options参数设定成XML_PARSE_NOBLANKS,否则的话是不会在结点后面添加回车的。/doc=xmlReadFile(docname,“UTF-8”,XML_PARSE_NOBLANKS);//读取xml文件时忽略空格/把xmlSaveFormatFile的format参数修改成1,否则在使用xmlReadFile打开的xml文件时,在生成的xml文件里是会把所有的结点都放到一行里显示。/xmlSaveFormatFile(docname,doc,1);以上内容

大家好,又见面了,我是你们的朋友全栈君。

/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 

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158146.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql自定义函数命名_MySQL自定义函数[通俗易懂]

    mysql自定义函数命名_MySQL自定义函数[通俗易懂]在使用MySQL的过程中,MySQL自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数。自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由SQL语句和过程式语句组成的代码片段,并且可以被应用程序和其他SQL语句调用。自定义函数与存储过程之间存在几点区别:1.自定义函数不能拥有输出参数,这是因为自定义函数自身就是输出参数;而存储过程可以拥有输出参数…

    2025年10月9日
    2
  • 云大使推广中的常见热门问题「建议收藏」

    云大使推广中的常见热门问题「建议收藏」云大使推广中的常见热门问题

    2022年4月21日
    68
  • MVC三层架构理解

    MVC三层架构理解MVC三层架构什么是MVC:ModelviewController模型、视图、控制器以前的架构用户直接访问控制层,控制层就可以直接操作数据库;servlet–CRUD–>数据库弊端:程序十分臃肿,不利于维护servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码架构:没有什么是加一层解决不了的!程序猿调用↑JDBC(实现该接口)↑MysqlOracleSqlServer….(不同厂商)MVC三层架构M

    2022年6月25日
    27
  • vmware15最新激活码_通用破解码

    vmware15最新激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    138
  • git 使用总结

    git 使用总结

    2021年11月7日
    85
  • 维表拉链表案例_维善优案例

    维表拉链表案例_维善优案例一.数据准备下表为分区增量数据表(userinfo)创建表加载数据用户信息createtabletest.userinfo(useridstringcomment’用户编号’,mobilestringcomment’手机号码’,regdatestringcomment’注册日期’)comment’用户信息’partitionedby(dtstring)rowformatdelimitedfieldsterminatedby’,’

    2022年10月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号