我想用C#做一个客户端,调用Web Service上的一个方法,Web Service端是用Delphi写的,这个方法返回的是Delphi里TClientDataSet的结果集;客户端的调用等一切都是正常的就是在用C#里的DataSet读取DELPHI里TClientDataSet的XMLData的XML串的时候不对,也不报错,但读出的数据不对;
ds.ReadXml(new System.IO.StringReader(vDataStr));这是我读取Delphi程序里TClientDataSet.XMLData属性的值的语句;TClientDataSet.XMLData生成的语句大概如下:
<?xml version="1.0" standalone="yes"?> <DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="SJJMC" fieldtype="string" required="true" WIDTH="30"/><FIELD attrname="SJK_ID" fieldtype="r8" required="true"/><FIELD attrname="SJJBT" fieldtype="string" WIDTH="80"/><FIELD attrname="LX" fieldtype="string" WIDTH="10"/><FIELD attrname="SJJLX" fieldtype="string" SUBTYPE="FixedChar" WIDTH="10"/><FIELD attrname="JZJB" fieldtype="r8"/><FIELD attrname="GLTJ" fieldtype="string" WIDTH="500"/><FIELD attrname="FL" fieldtype="string" WIDTH="200"/><FIELD attrname="XGSJ" fieldtype="string" WIDTH="200"/><FIELD attrname="LB" fieldtype="string" WIDTH="255"/><FIELD attrname="FLXH" fieldtype="r8"/><FIELD attrname="JB" fieldtype="string" WIDTH="20"/><FIELD attrname="SM" fieldtype="string" WIDTH="200"/><FIELD attrname="SJJCQ_ID" fieldtype="r8"/><FIELD attrname="SJSJJMC" fieldtype="string" WIDTH="20"/></FIELDS><PARAMS/></METADATA><ROWDATA><ROW SJJMC="AJLJ33" SJK_ID="13" SJJBT="综合录井钻头数据表" LX="静态录井" SJJLX="表" JZJB="2" FL="录井" LB="生产成果"/><ROW SJJMC="AJLJ34" SJK_ID="13" SJJBT="钻头程序数据表" LX="静态录井" SJJLX="表" JZJB="2" FL="录井" LB="生产成果"/>我没有贴全,但这里包括一条记录以及所有字段描述的信息;名位高手我应该怎么办啊;
十万火急,在线等待;
ds.ReadXml(new System.IO.StringReader(vDataStr));这是我读取Delphi程序里TClientDataSet.XMLData属性的值的语句;TClientDataSet.XMLData生成的语句大概如下:
<?xml version="1.0" standalone="yes"?> <DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="SJJMC" fieldtype="string" required="true" WIDTH="30"/><FIELD attrname="SJK_ID" fieldtype="r8" required="true"/><FIELD attrname="SJJBT" fieldtype="string" WIDTH="80"/><FIELD attrname="LX" fieldtype="string" WIDTH="10"/><FIELD attrname="SJJLX" fieldtype="string" SUBTYPE="FixedChar" WIDTH="10"/><FIELD attrname="JZJB" fieldtype="r8"/><FIELD attrname="GLTJ" fieldtype="string" WIDTH="500"/><FIELD attrname="FL" fieldtype="string" WIDTH="200"/><FIELD attrname="XGSJ" fieldtype="string" WIDTH="200"/><FIELD attrname="LB" fieldtype="string" WIDTH="255"/><FIELD attrname="FLXH" fieldtype="r8"/><FIELD attrname="JB" fieldtype="string" WIDTH="20"/><FIELD attrname="SM" fieldtype="string" WIDTH="200"/><FIELD attrname="SJJCQ_ID" fieldtype="r8"/><FIELD attrname="SJSJJMC" fieldtype="string" WIDTH="20"/></FIELDS><PARAMS/></METADATA><ROWDATA><ROW SJJMC="AJLJ33" SJK_ID="13" SJJBT="综合录井钻头数据表" LX="静态录井" SJJLX="表" JZJB="2" FL="录井" LB="生产成果"/><ROW SJJMC="AJLJ34" SJK_ID="13" SJJBT="钻头程序数据表" LX="静态录井" SJJLX="表" JZJB="2" FL="录井" LB="生产成果"/>我没有贴全,但这里包括一条记录以及所有字段描述的信息;名位高手我应该怎么办啊;
十万火急,在线等待;
1:DATAPACKET
2:METADATA
3:FIELDS
4:FIELD
5:ROWDATA
6:ROW
好怪噢,这个怎么读的是每个标记名称;郁闷;
用DataSet.ReadXml是不行的。
你的意思是,把数据分析出来,再一条一条的插到DataSet里嘛;
晕啊,以前对XML了解过一点点,没有深触过;
你做过没有,有没有现成代码:),哈哈