请教:如何把以XML格式的流文件解析出来。
C/S传送文件时,在服务器端,文件经过加密后写成XML格式的流(Unsigned char),客户端要解析该流,如何解析?用什么组件? 问题点数:50、回复次数:5Top
1 楼ThinkX(秋天的树)回复于 2003-01-06 17:06:51 得分 50
如果XML文件的格式是固定的,用XML Data Binding功能生成一个类读写就可以了。如果XML格式不是固定的,用TXMLDocument可以。TStringStream是个字符串流的类,它可以和TStream的子类互相转换的,处理XMl方便一些,以上是针对BCB6的.如果用BCB5的话,只好用MS的XML解析组件了.Top
2 楼xqiris(蝴蝶花)回复于 2003-01-06 17:26:01 得分 0
谢谢!
我现在就是BCB6。用XML Data Binding功能,那需要用什么组件?
能举个例子吗?
XML格式:
<父亲节点>
<name>A</name>
<儿子节点列表>
<name>B,C,D</name>
</儿子节点列表>
</父亲节点>
如何解析出来?
Top
3 楼ThinkX(秋天的树)回复于 2003-01-06 19:11:50 得分 0
你先写一个要解析格式的XSD文件,其实DTD也可以,但是DTD的缺点是无法表示节点数据类型。XML Data Binding用这个XSD或者DTD生成一个可以读写这种格式XML的类。生成后直接使用这个类就可以读写这种格式的XML格式的文件了。Top
4 楼xqiris(蝴蝶花)回复于 2003-01-07 10:41:19 得分 0
TO ThinkX:
谢谢!
用XML Data Binding 是DOM方面吧‘
如果我要用Parse,是不是用TXMLDocument,还是其它?
Top
5 楼xqiris(蝴蝶花)回复于 2003-01-09 14:43:08 得分 0
TO ThinkX:
我现在想用Parse。
即用msxml3.dll提供的一些接口:ISAXXMLContentHandler,ISAXXMLReader
等接口。在MSDN Oct 2001的版本中提供。在Platform SDK Documentation 下的Data Service下的XML下的SAX2 Developer's Guide下有具体说明。
但是我用BCB 6 来实现的时候,MyContent *pMc=new MyContent(); 总是出错。
原因说AddRef()纯虚函数没有实现。 但是我MyContent从自己通过Automation做的TContentHandlerIml的类继承来的。而IContentHandler继承msxml.dll中的ISAXContentHandler继承来。AddRef不应该自己实现啊。
请指点!谢谢!Top




