字符串与xml

wbssoftware 2011-08-09 09:48:57
做项目的时候会经常使用xml格式进行数据的读写,而在利用接口作交互中经常会把xml内容转换成字符串然后再转换成xml对象进行读取数据。xml格式的数据除了规范一点和xml类提供丰富的方法,他跟一些带规则的字符串有什么区别?
比如说有数据
姓名 性别
张三 男
李四 男
xml的格式
<item><name>张三</name><age>男</age><item><item><name>李四</name><age>男</age><item>
字符串格式(自己先定义好规则)
张三|男;李四|男
假如我要遍历所有项,那两种方式上各有什么优点和缺点?假如数据大,字符串的形式是否能行通?两种格式在数据在遍历的过程中是否在效率上产生差距?
...全文
69 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjcxjstc 2011-08-24
  • 打赏
  • 举报
回复
xml就是冗余信息多,而且转换花费大量时间。但是扩展性好,楼主觉得不好,可以考虑protocol buffer,这是google内部使用数据交换的格式。比xml效率高多了。
wbssoftware 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hua_yang 的回复:]
如果数据量很大,性能要求很高,用自己定义的文本格式存放,自己解析也许性能高一些。
但是如果性能上要求不高,自己再写存放,解析模块岂不是浪费人力?况且自己写的模块容易出错,需要很多时间去验证。

就像字符串操作有很多成熟的库函数,如果没有特殊的需要,直接拿来用就是,何必自己再去实现。
[/Quote]
学得有道理
叶落寒山 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hua_yang 的回复:]
如果数据量很大,性能要求很高,用自己定义的文本格式存放,自己解析也许性能高一些。
但是如果性能上要求不高,自己再写存放,解析模块岂不是浪费人力?况且自己写的模块容易出错,需要很多时间去验证。

就像字符串操作有很多成熟的库函数,如果没有特殊的需要,直接拿来用就是,何必自己再去实现。
[/Quote]

同意楼上的观点
hua_yang 2011-08-10
  • 打赏
  • 举报
回复
如果数据量很大,性能要求很高,用自己定义的文本格式存放,自己解析也许性能高一些。
但是如果性能上要求不高,自己再写存放,解析模块岂不是浪费人力?况且自己写的模块容易出错,需要很多时间去验证。

就像字符串操作有很多成熟的库函数,如果没有特殊的需要,直接拿来用就是,何必自己再去实现。
wbssoftware 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hua_yang 的回复:]
Xml格式可以表示很复杂的结构,例如嵌套等

针对简单的应用,楼主的结构或许效率更高些。但是xml更为通用,也有丰富的类库可以用
[/Quote]
还不太清楚,xml是有丰富的类库使用,但是如果格式单一,不需要错开遍历的话,我也想知道哪种方式好,因为在一般的情况下不会用字符串,都是用xml的格式进行的。而且如果使用字符串的话,数据会不会容易出现错乱这也是个问题。
hua_yang 2011-08-09
  • 打赏
  • 举报
回复
Xml格式可以表示很复杂的结构,例如嵌套等

针对简单的应用,楼主的结构或许效率更高些。但是xml更为通用,也有丰富的类库可以用
wbssoftware 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hnuqinhuan 的回复:]
XML有专门的读写库函数可以实现遍历的 百度一下吧
[/Quote]
嗯,这个我是知道的。字符串操作也提供了许多方法,比如split。其实我是想了解下这两种格式的数据上在各方面有哪些差异
無_1024 2011-08-09
  • 打赏
  • 举报
回复
XML有专门的读写库函数可以实现遍历的 百度一下吧

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧