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 

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • networkmanager和network区别_network graph

    networkmanager和network区别_network graph一、NetworkManager做了什么:NetworkManager确保网络连接正常。当检测到系统中没有网络配置但有网络设备时,NetworkManager会创建临时连接以提供连接。通过不同的工具(GUI,nmtui,nmcli)提供管理。NetworkManager可以配置网络别名,IP地址,静态路由,DNS信息和VPN连接,以及许多特定于连接的参数。重新启动后保持设备状态,并接管重新启动期间设置为受管模式的接口。未明确设置为不受管理但由用户或其他网络服务手动控制的设备。可以和netwo

  • privacypolicy什么意思_privacyversion

    privacypolicy什么意思_privacyversion隐私政策网址(URL)移动APP应用尊重和保护利用用户的隐私所有的服务。为了向您提供更准确,更人性化的服务,将移动APP应用使用和披露按照本隐私政策您的个人信息。但是移动APP应用将是一个高度的勤勉,审慎义务对待这些信息。除本隐私政策另有规定外,未经您的许可之前,移动APP应用信息将不会被披露或向第三方提供。移动APP应用更新本隐私政策不时。当您同意移动APP应用服务协议,您将被视为……

  • igmp是负责ip组播成员管理的协议_IGMP协议

    igmp是负责ip组播成员管理的协议_IGMP协议组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。IGMP(InternetGroupManagementProtocol)作为因特网组管理协议,是TCP/IP协议族中负责IP组播成员管理的协议,它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关

  • powermodule_getsocketopt

    powermodule_getsocketopt严格模式ES6的模块自动采用严格模式,不管你有没有在模块头部加上"usestrict";。严格模式的限制如下变量必须声明后再使用函数的参数不能有同名属性,否则报错不能

  • Android中的layout_gravity和gravity的区别[通俗易懂]

    Android中的layout_gravity和gravity的区别[通俗易懂]在Android的布局中,除了padding和margin容易弄混之外,还有layout_gravity和gravity。按照字面意思来说,layout_gravity就是相对于layout来设置的。

  • 图书管理系统C语言_c语言图书信息管理系统

    图书管理系统C语言_c语言图书信息管理系统《C语言图书管理系统代码》由会员分享,可在线阅读,更多相关《C语言图书管理系统代码(3页珍藏版)》请在人人文库网上搜索。1、include#includenum,ptr-bname,ptr-wname,ptr-press,ptr-sort,ptr-time,ptr-price);printf(=n);f*n,p-num,p-bname,p-wname,p-press,p-sort,p-time…

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

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