蓝
蓝笛
Unregistered / Unconfirmed
GUEST, unregistred user!
这是在C#中写的WEBSERVER方法
[WebMethod]
public string GetEmployeeData()
{
this.sqlConnection1.Open();
this.sqlDataAdapter1.Fill(this.dataSet11,"tblDepartment"
return this.dataSet11.GetXml();
}
我用DELPHI调用后显示的XML是这种格式的:
<DataSet1 xmlns="http://www.tempuri.org/DataSet1.xsd">
<tblDepartment>
<DeptID>3</DeptID>
<DeptName>人事部 </DeptName>
<ManagerID>333333398</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>5</DeptID>
<DeptName>财务部 </DeptName>
<ManagerID>9</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>7</DeptID>
<DeptName>行政部 </DeptName>
<ManagerID>12</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>9</DeptID>
<DeptName>销售部 </DeptName>
<ManagerID>15</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>20</DeptID>
<DeptName>研发部 </DeptName>
<ManagerID>333333397</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>78</DeptID>
<DeptName>娱乐部 </DeptName>
<Description>尽情享乐</Description>
<ManagerID>9</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>84</DeptID>
<DeptName>信息部 </DeptName>
<Description />
<ManagerID>333333400</ManagerID>
</tblDepartment>
</DataSet1>
我想用TClientDataSet的XMLDATA属性直接赋值,可是发现TClientDataSet能识别的XML格式是这样的:
<?xml version="1.0"
standalone="yes"?>
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="DeptID"
fieldtype="i4"
readonly="true"
SUBTYPE="Autoinc">
<PARAM Name="PROVFLAGS"
Value="7"
Type="i4"
Roundtrip="True"/>
</FIELD>
<FIELD attrname="DeptName"
fieldtype="string.uni"
WIDTH="20"/>
<FIELD attrname="Description"
fieldtype="string.uni"
WIDTH="100"/>
<FIELD attrname="ManagerID"
fieldtype="i4"/>
</FIELDS>
<PARAMS DEFAULT_ORDER="1"
PRIMARY_KEY="1"
UNIQUE_KEY="1"/>
</METADATA>
<ROWDATA>
<ROW DeptID="3"
DeptName="&#20154;&#20107;&#37096;
"
ManagerID="333333398"/>
<ROW DeptID="5"
DeptName="&#36130;&#21153;&#37096;
"
ManagerID="9"/>
<ROW DeptID="7"
DeptName="&#34892;&#25919;&#37096;
"
ManagerID="12"/>
<ROW DeptID="9"
DeptName="&#38144;&#21806;&#37096;
"
ManagerID="15"/>
<ROW DeptID="20"
DeptName="&#30740;&#21457;&#37096;
"
ManagerID="333333397"/>
<ROW DeptID="78"
DeptName="&#23089;&#20048;&#37096;"
Description="&#23613;&#24773;&#20139;&#20048;"
ManagerID="9"/>
<ROW DeptID="84"
DeptName="&#20449;&#24687;&#37096;
"
ManagerID="333333400"/>
</ROWDATA>
</DATAPACKET>
在DELPHI中用什么办法解决呢?怎样才能读取前面的那种格式的XML.我在网上是有找到解决办法.不过要用到DELPHI的工具XML MAPPER先将前面的那种格式转化生成一个.XTR文件.再转化.总觉得这种方法太麻烦了而且不实用.如果WEBSERVER返回的有10张表,那不是也要生成相应的10个.XTR文件.想想太可怕,如果返回的表是在运行期确定的呢?该怎么办??有没有更好的解决方法呢?请高手指教!!小弟在这里先谢过了.
[WebMethod]
public string GetEmployeeData()
{
this.sqlConnection1.Open();
this.sqlDataAdapter1.Fill(this.dataSet11,"tblDepartment"
return this.dataSet11.GetXml();
}
我用DELPHI调用后显示的XML是这种格式的:
<DataSet1 xmlns="http://www.tempuri.org/DataSet1.xsd">
<tblDepartment>
<DeptID>3</DeptID>
<DeptName>人事部 </DeptName>
<ManagerID>333333398</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>5</DeptID>
<DeptName>财务部 </DeptName>
<ManagerID>9</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>7</DeptID>
<DeptName>行政部 </DeptName>
<ManagerID>12</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>9</DeptID>
<DeptName>销售部 </DeptName>
<ManagerID>15</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>20</DeptID>
<DeptName>研发部 </DeptName>
<ManagerID>333333397</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>78</DeptID>
<DeptName>娱乐部 </DeptName>
<Description>尽情享乐</Description>
<ManagerID>9</ManagerID>
</tblDepartment>
<tblDepartment>
<DeptID>84</DeptID>
<DeptName>信息部 </DeptName>
<Description />
<ManagerID>333333400</ManagerID>
</tblDepartment>
</DataSet1>
我想用TClientDataSet的XMLDATA属性直接赋值,可是发现TClientDataSet能识别的XML格式是这样的:
<?xml version="1.0"
standalone="yes"?>
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="DeptID"
fieldtype="i4"
readonly="true"
SUBTYPE="Autoinc">
<PARAM Name="PROVFLAGS"
Value="7"
Type="i4"
Roundtrip="True"/>
</FIELD>
<FIELD attrname="DeptName"
fieldtype="string.uni"
WIDTH="20"/>
<FIELD attrname="Description"
fieldtype="string.uni"
WIDTH="100"/>
<FIELD attrname="ManagerID"
fieldtype="i4"/>
</FIELDS>
<PARAMS DEFAULT_ORDER="1"
PRIMARY_KEY="1"
UNIQUE_KEY="1"/>
</METADATA>
<ROWDATA>
<ROW DeptID="3"
DeptName="&#20154;&#20107;&#37096;
"
ManagerID="333333398"/>
<ROW DeptID="5"
DeptName="&#36130;&#21153;&#37096;
"
ManagerID="9"/>
<ROW DeptID="7"
DeptName="&#34892;&#25919;&#37096;
"
ManagerID="12"/>
<ROW DeptID="9"
DeptName="&#38144;&#21806;&#37096;
"
ManagerID="15"/>
<ROW DeptID="20"
DeptName="&#30740;&#21457;&#37096;
"
ManagerID="333333397"/>
<ROW DeptID="78"
DeptName="&#23089;&#20048;&#37096;"
Description="&#23613;&#24773;&#20139;&#20048;"
ManagerID="9"/>
<ROW DeptID="84"
DeptName="&#20449;&#24687;&#37096;
"
ManagerID="333333400"/>
</ROWDATA>
</DATAPACKET>
在DELPHI中用什么办法解决呢?怎样才能读取前面的那种格式的XML.我在网上是有找到解决办法.不过要用到DELPHI的工具XML MAPPER先将前面的那种格式转化生成一个.XTR文件.再转化.总觉得这种方法太麻烦了而且不实用.如果WEBSERVER返回的有10张表,那不是也要生成相应的10个.XTR文件.想想太可怕,如果返回的表是在运行期确定的呢?该怎么办??有没有更好的解决方法呢?请高手指教!!小弟在这里先谢过了.