C# 从web调用获取所有文本
我有下面的代码,它做了我想要它做的事情。它从web调用中获取XML数据并将其放入对象中C# 从web调用获取所有文本,c#,xml,httpwebrequest,xmlserializer,C#,Xml,Httpwebrequest,Xmlserializer,我有下面的代码,它做了我想要它做的事情。它从web调用中获取XML数据并将其放入对象中 string url = ConfigurationManager.AppSettings[CONFIGURATION_KEY_XE_COM_URL]; var serialiser = new XmlSerializer(typeof(xedatafeed)); var settings = new XmlReaderSettings {XmlResolver = nul
string url = ConfigurationManager.AppSettings[CONFIGURATION_KEY_XE_COM_URL];
var serialiser = new XmlSerializer(typeof(xedatafeed));
var settings = new XmlReaderSettings {XmlResolver = null, DtdProcessing = DtdProcessing.Parse};
var reader = XmlReader.Create(url, settings);
var feed = (xedatafeed) serialiser.Deserialize(reader);
return feed;
问题是,我也想获得此数据的字符串表示形式,而执行feed.ToString()
几乎可以提供所有数据,但不是所有数据。缺少两样东西
声明我也想要这两样东西。我必须排除DTD声明,因为它不是反序列化到对象中所必需的,并且当我没有排除它时,它会导致错误。根据以上代码,获得完整响应的最干净的方法是什么?根据我的经验,在获得Web服务的结果后,最好将声明添加到字符串中,或者通过编程进行声明 方法1-接收数据后添加XML声明
string xmlStr = string.format(@" < ?xml version=\"1.0\" encoding=\"ISO-8859-1\"? > {0}", WebServiceStringResult)
然后,您可以使用以下命令从连接的字符串创建新的XML文档对象:
YourXmlDocumentObject.ReadXML(xmlStr)
string xmlStr = string.format(@" < ?xml version=\"1.0\" encoding=\"ISO-8859-1\"? > {0}", WebServiceStringResult)
在新的XmlDocument对象中,设置属性以匹配XML版本和DTD信息
最后,只需使用以下内容添加您的webservice结果字符串:
YourXmlDocumentObject.ReadXML(WebServiceStringResult);
注意:SOAP1.1和1.2将与声明一起作为嵌入式请求的一部分。
ie声明在您的一个web方法中
~^我仍在学习使用这个poxy编辑器,对不起~你好,Aaron,我不确定如何将上述内容集成到我的代码中。另外,我只想将响应中的实际内容输入字符串中,而不是假设它将包含特定的编码(例如)。我很想在这里看到更多细节。我想问题是,一旦你创建了这个“提要”对象,你想对它做什么?我想能够使用它从中获取数据。看看M$take吧。。。因为您正在创建一个XmlDocument对象,所以可以确信它的类型是XML。M$示例将允许您根据DTD对其进行验证。