我在asp.net中写了一个webservice
,它有select函数,它的参数是一个字符串,像这样返回一个dataset
:
[WebMethod]
public DataSet Select(string query)
{
DataTable dt = new DataTable();
dt.Columns.Add("fname");
dt.Columns.Add("lname");
dt.Rows.Add("mehdi", "nine");
dt.Rows.Add("ali", "javan");
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
当我看到它的xml输入时,它是这样的:
<s:element name="Select">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="query" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SelectResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SelectResult">
<s:complexType>
<s:sequence>
<s:element ref="s:schema"/>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
在xml文件中我们可以看到它的输出是SelectResult
。如何将其转换为delphi7
中的数据源?
任何想法?
答案 0 :(得分:0)
DaTaSet不好作为不使用.net的客户端的webservice返回类型。您可以尝试在此处重新调整XML ..
[WebMethod]
public string Select(string query)
{
// your code
return ds.GetXml();
}
这将为您提供XMl,如下所示
<NewDataSet>
<Table1>
<fname>mehdi</fname>
<lname>nine</lname>
</Table1>
<Table1>
<fname>ali</fname>
<lname>javan</lname>
</Table1>
</NewDataSet>
希望您可以将其处理为用作DataSource。
如果您需要缩进XML,请检查此答案What is the simplest way to get indented XML with line breaks from XmlDocument?