libxml2库函数添加子节点不能保存和不能换行以及读取子节点数不对的解决方法
来源:互联网 发布:淘宝买家退款率从哪看 编辑:程序博客网 时间:2024/06/07 09:54
1、添加子节点无法保存成功?
原因:代码中的根节点与解析过后的doc不是配套的,属程序编写过程的错误。
解决方法: 把两者对应起来,再进行添加保存就好。
2、添加过程中无法换行?
通过查找资料,发现在xmlSaveFormatFile(xmlFileName,doc,1);代码之前需要增加两行代码。
xmlKeepBlanksDefault(0) ;//libxml2 global variable .
xmlIndentTreeOutput = 1 ;// indent .with \n
3、读取的子节点数不对?
原因:之前我是用doc = xmlParseFile(xmlFileName); 来解析文件的,发现一直有问题,
后来换成 doc = xmlReadFile(xmlFileName,"GB2312",XML_PARSE_NOBLANKS);后,问题解决。
查看libxml2库中的说明,其说前者:
Function: xmlParseFile
xmlDocPtrxmlParseFile(const char * filename)
parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.
后者:(解析来自系统和网络,且多了个options参数,该参数选择XML_PARSE_NOBLANKS表现去除空节点)
Function: xmlReadFile
xmlDocPtrxmlReadFile(const char * filename, const char * encoding, int options)
parse an XML file from the filesystem or the network.
总结:不懂的东西,最好是查一下libxml2 的doc说明。
0 0
- libxml2库函数添加子节点不能保存和不能换行以及读取子节点数不对的解决方法
- 临时节点不能有child 子节点
- 读取XML子节点的若干节点
- easyui tree为什么不能选中子节点
- TreeViewer的setselection方法不能选中树的子节点
- Javascript removeChild()不能删除全部子节点的解决办法
- treeview添加指定节点的子节点
- 操作引入xml文件的书包(添加子节点和保存文件)
- cocos2dx 设置父节点的显隐不能改变子节点的问题
- 添加取得子节点
- 树的java底层实现 保存子节点方式和保存父节点方式
- c# XML读取创建修改节点,子节点,和值
- JQuery删除和添加子节点
- asp操作xml,添加新的子节点和属性
- zookeeper客户端读取子节点的信息
- ztree操作子节点 子节点的子节点
- React Native 不能反回单一子节点情况.
- XML的解析——读取节点的值和内容 (只有一级子节点)
- 交叉编译ARM版 Qt (qt-everywhere-opensource-src-4.8.4)
- Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest?
- 转android的UI设计八
- Android遇到内存溢出(Out Of Memory)BUG的经验与解决方法
- ios------NSDictionary、NSMutableDictionary使用小结
- libxml2库函数添加子节点不能保存和不能换行以及读取子节点数不对的解决方法
- block和split的理解
- inline函数为什么最好要添加static
- 位运算的运用
- python 正则表达式
- 一转眼13年 马踏14间
- 一个PHP的数组工具UTIL
- object-c基本知识
- DAO层、model层、service层的理解