0
我需要在C#中读取来自BizTalk服务的响应内容,该服务会发送一些名为diffgram的内容。我使用SoapUI来查看该服务正在响应。从BizTalk diffgram中读取XML响应
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ejecutaDqlResponse xmlns="http://tempuri.org/">
<ejecutaDqlResult>
<xs:schema id="dql" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="dql" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table1">
<xs:complexType>
<xs:sequence>
<xs:element name="r_object_id" type="xs:string" minOccurs="0"/>
<xs:element name="n_tipo_docto" type="xs:string" minOccurs="0"/>
<xs:element name="n_fecha_celbrcn" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<dql xmlns="">
<Table1 diffgr:id="Table11" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<r_object_id>0902c09e80109543</r_object_id>
<n_tipo_docto>Asambleas de Accionistas 1.- Acta</n_tipo_docto>
<n_fecha_celbrcn>1/1/2014 12:00:00 AM</n_fecha_celbrcn>
</Table1>
<Table1 diffgr:id="Table12" msdata:rowOrder="1" diffgr:hasChanges="inserted">
<r_object_id>0902c09e8010a95a</r_object_id>
<n_tipo_docto>Asambleas de Accionistas Extraordinarias</n_tipo_docto>
<n_fecha_celbrcn>3/14/2015 12:00:00 AM</n_fecha_celbrcn>
</Table1>
</dql>
</diffgr:diffgram>
</ejecutaDqlResult>
</ejecutaDqlResponse>
</s:Body>
</s:Envelope>
我需要做的唯一的事情就是数不同r_object_id,在这个反应存在。但我无法弄清楚如何去做。我尝试了dataset.ReadXml,但没有奏效。
任何人都可以帮助我吗?
您是否获得此响应,XML块或字符串(如图所示)? – tgolisch
是的。我得到这个作为一个xmlblock,但是因为是biztalkservice,我进入我的c#代码的类是类型“ejecutaDqlResponse”。显示的字符串是即时通讯使用SOAP UI –