免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6467 | 回复: 7
打印 上一主题 下一主题

[函数] 如果xml文件已经以流的方式读入内存用libxml2的什么函数解析啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-15 02:03 |只看该作者 |倒序浏览
郁闷,对方和我们通讯使用socket,xml文件也是通过socket以字节流的方式传递过来,我们这边用libxml2,用什么函数解析啊?
各位谁知道啊。

论坛徽章:
0
2 [报告]
发表于 2006-09-15 14:07 |只看该作者
xmlRecoverDoc

论坛徽章:
0
3 [报告]
发表于 2007-03-21 15:20 |只看该作者

能举个例子吗?

socket接收时,在缓存里只能有有限个字节,列如4096个字节,把这4096个字节作为一个xmlChar字符串调用xmlRecoverDoc吗?一条xml的节点(或记录)可能被分成两段,一部分在前4096个字节,一部分在后4096个,分两次接收,这个怎么处理呢?如有可能,给出一个例子,不胜感激!!!

论坛徽章:
0
4 [报告]
发表于 2007-03-21 15:39 |只看该作者

能不能用xmlReadFD?

能不能用xmlReadFd解决socket字节流传送xml文件的问题,我们的对方是以socket把生成的xml流传过来,而且传过来的是一个个<RECORD>....</RECORD>@2<RECORD>...</RECORD>%$<RECORD>...</RECORD>......这样的方式传过来的,而且没有开头和结尾,不知这样的xml字节流怎么去解析?

论坛徽章:
0
5 [报告]
发表于 2007-03-21 16:55 |只看该作者
doc=xmlParseMemory(message,size);
message 为socket传过来的数据,size 为数据长度.

论坛徽章:
0
6 [报告]
发表于 2007-03-22 09:08 |只看该作者

谢谢指教

谢谢楼上的指教,如果对方传过来的一个<RECORD>....</RECORD>结构是分两次接收到一个buffer中的,即第一次我读socket时,将字节流接收到一个buffer中,在这个buffer中只有一个<RECORD>....</RECORD>结构的前一部分,当我再次读socket时,将字节流也接收到buffer中,这次接收到了前面那个<RECORD>....</RECORD>的后一部分,请问这样的情况也能通过xmlParserMemory来解析吗?还是要自己处理一下不完整的<RECORD>...</RECORD>结构,先使其成为一个完整的结构后,再用xmlParserMemory解析呢?

论坛徽章:
0
7 [报告]
发表于 2007-03-22 10:48 |只看该作者
这个我觉得这就不是xml的问题了,你首先得保证你的xml对于解析器来说是合法的.

论坛徽章:
0
8 [报告]
发表于 2007-03-22 12:42 |只看该作者

谢谢

多谢指教
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP