webservice返回数据处理 本人通过Webservice调用一个网站的API时,返回的数据类型是object[],但是我调试的时候查看里面的具体内容时,发现其实是一些XML内容,调试的时候有一项InnerXML的值如图:请问怎样才能获取里面的值?XMLWeb服务webservice 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上图中rs是webservice的返回值,该怎么处理? 怎么rs[0],和rs[1]的内容好像还不一样,这是怎么回事? 我获取结果的代码:object[] rs = sv.createSubmission("××", "××", Code, 11, null, true, true);接下来该怎么处理,sv.createSubmission()返回值是object[]类型的。 你去调用的一般是WebServers的查询吧,他返回的是一个Table为父节点的XML可扩展标记语言吧,你一般是通过Ajax调用的吗?结合jQuery很好获取到值的,先到源网站上找出他的节点名称,然后这样写:$.post("webserversaddress","",function(result){ var array=$(result).find("Table") //这里有很多节点总之想办法定位到那个节点就行了。一般这一步都可以获取到一个数组。 array[...] //获取自己想要的数据。}); string responseXml = HttpRequest(requestXml); //上游异常错误 if (string.IsNullOrEmpty(responseXml)) { item.ResultCode = "00011"; item.ResultMsg = "上游提交返回异常"; response.Add(item); return response; } XmlDocument xmlResult = new XmlDocument(); xmlResult.InnerXml = responseXml; //开始解析xml(返回错误代码的时候) XmlNode errNode = xmlResult.SelectSingleNode("//Error"); if (errNode != null) { item.ResultCode = "18002"; item.ResultMsg = errNode.SelectSingleNode("//Error").Attributes["Code"].Value + "|" + errNode.SelectSingleNode("//Error").InnerText; response.Add(item); return response; } //开始解析xml() //通过判断返回的数据量,确认是否有数据返回 XmlNode retNode = xmlResult.SelectSingleNode("//RecordCount"); if (Convert.ToInt32(retNode.InnerText) <= 0) { //未找到数据 item.ResultCode = "00011"; item.ResultMsg = "无数据返回"; response.Add(item); return response; } //成功 XmlNodeList hotelList = xmlResult.SelectNodes("//Item"); XmlNodeList roomList = null; XmlNodeList rateList = null; XmlNodeList fangtList = null; XmlNodeList imgList = null; foreach (XmlNode node in hotelList) { Echao.Entity.JinRiHotel.JinRiMsg msg = new Entity.JinRiHotel.JinRiMsg(); msg.ResultCode = "00000"; msg.ThreeCodeCity = node.SelectSingleNode("City").Attributes["Code"].Value; msg.CityName = node.SelectSingleNode("City").InnerText; msg.HotelCode = node.SelectSingleNode("Hotel").Attributes["Code"].Value; msg.HotelName = node.SelectSingleNode("Hotel").InnerText; msg.Address = node.SelectSingleNode("Address").InnerText; msg.RankCode = node.SelectSingleNode("Rank").Attributes["Code"].Value; msg.RankName = node.SelectSingleNode("Rank").InnerText; msg.Regions = node.SelectSingleNode("Regions").SelectSingleNode("Region").InnerText; msg.Businesses = node.SelectSingleNode("Businesses").SelectSingleNode("Business").InnerText; msg.Report = node.SelectSingleNode("Reports").SelectSingleNode("Report").InnerText; //开始获取room房型数据 roomList = node.SelectSingleNode("Rooms").ChildNodes; foreach (XmlNode room in roomList) { roomEntity.ResultCode = "00000"; roomEntity.RoomCode = room.SelectSingleNode("RoomName").Attributes["Code"].Value; roomEntity.RoomName = room.SelectSingleNode("RoomName").InnerText; roomEntity.BedType = room.SelectSingleNode("BedType").InnerText; roomEntity.AddBed = room.SelectSingleNode("AddBed").InnerText; roomEntity.Floors = room.SelectSingleNode("Floors").InnerText; roomEntity.Description = room.SelectSingleNode("Description").InnerText; roomEntity.Area = room.SelectSingleNode("Area").InnerText; msg.Rooms.Add(roomEntity); //开始获取房价数据 rateList = room.SelectSingleNode("Rates").ChildNodes; foreach (XmlNode rate in rateList) { Echao.Entity.JinRiHotel.RoomRate rateEntity = new Entity.JinRiHotel.RoomRate(); rateEntity.Date = rate.SelectSingleNode("Date").InnerText; rateEntity.PaymentType = rate.SelectSingleNode("PaymentType").InnerText; rateEntity.SalePrice = rate.SelectSingleNode("SalePrice").InnerText; rateEntity.DisplayPrice = rate.SelectSingleNode("DisplayPrice").InnerText; rateEntity.BalsPrice = rate.SelectSingleNode("BalsPrice").InnerText; rateEntity.Commisions = rate.SelectSingleNode("Commissions").InnerText; rateEntity.CommisionsRatio = rate.SelectSingleNode("Commissions").Attributes["Ratio"].Value; rateEntity.Meal = rate.SelectSingleNode("Meal").InnerText; rateEntity.BroadNet = rate.SelectSingleNode("BroadNet").InnerText; //添加房价 roomEntity.Rates.Add(rateEntity); } //开始获取房态数据 fangtList = room.SelectSingleNode("Availabilities").ChildNodes; foreach (XmlNode ft in fangtList) { Echao.Entity.JinRiHotel.RoomAvailabilities availabilities = new Entity.JinRiHotel.RoomAvailabilities(); availabilities.Date = ft.SelectSingleNode("Date").InnerText; availabilities.PaymentType = ft.SelectSingleNode("PaymentType").InnerText; availabilities.Status = ft.SelectSingleNode("Status").InnerText; availabilities.StatusCode = ft.SelectSingleNode("Status").Attributes["Code"].Value; //添加房态 roomEntity.Availabilities.Add(availabilities); } } //开始获取图片数据 imgList = node.SelectSingleNode("Links").ChildNodes; foreach (XmlNode img in imgList) { ; link.Text = img.SelectSingleNode("Text").InnerText; link.ThumbNail = img.SelectSingleNode("ThumbNail").InnerText; link.Image = img.SelectSingleNode("Image").InnerText; //添加图片 msg.ImgLinkes.Add(link); } response.Add(msg); }我想说 ,给了给你,你能看懂么 ?c#解析xml 不好意思,我是刚接触webservice,很多东西都不知道,我这个调用网络上的一个webservice,在.cs中调用该服务,不知道哪里有问题吗? Object也是有类型的,调试器里看一下。 我看怎么好像返回的是XmlDocument呢。 不好意思,我是刚接触webservice,很多东西都不知道,我这个调用网络上的一个webservice,在.cs中调用该服务,不知道哪里有问题吗?不管你访问什么WebServices,它最后一般都会返回一个结果,这个结果或许是一个object获取是一个string,总之要根据你要的操作来根据结果判断。你后台访问,直接导入名称,创建对象就可以了,然后获取其所包含的方法,看看其返回值就行了,对象-看看其中的属性呗,string打印出来看看呗。这没什么好纠结的。 这一行是什么意思??没意思httpRequest是自定义的方法,访问接口的 ,获取到接口返回的字符串 我上面的图片中可以看出来吗?在哪里看?XmlNode[3] 类型是XmlNode的3个元素的数组。 但是我将rs转为XmlNode的时候好像行不通! XmlNode firstNode = rs[0] as XmlNode; 你那个地方返回了XML对象,里面有个三列数据吧。你循环便利出来啊。你的需求是什么。我现在只知道你调试,你具体需要一个什么样的需求。 不好意思我是新手,之前没接触过XML,我将获得的结果转为了xmlnode,但我想获取图中error节点的值,怎么获取?谢谢? String err = two.ChildNodes[1].InnerText这样对不对? 好像就用 String err = two.ChildNodes[1].InnerText 能取到值,谢谢楼上各位的帮忙! 请教一个IIS7+ASP.NET网站的最大连接数和带宽有什么关系? 验证码中的文字的扭曲效果怎么实现? get方法不能把数据传递到目标地址是什么原因? 数据库怎么装啊? Ajax問題! 关于单选按扭radio的问题 为什么在VS2003中application的值在停止程序运行后,再次运行,其application中的值和上次的值一样 为什么我的程序里没有这个函数呢?如何用Request取数组对象呢?不知是否可以,请高手进来看看。 !!!!在线等!!!!简单的棘手问题! 如何将字符串19750208转换为日期 关于ASP.NET母版页显示失败的原因 Jquery给select赋值问题
上图中rs是webservice的返回值,该怎么处理?
object[] rs = sv.createSubmission("××", "××", Code, 11, null, true, true);
接下来该怎么处理,sv.createSubmission()返回值是object[]类型的。
$.post("webserversaddress","",function(result){
var array=$(result).find("Table") //这里有很多节点总之想办法定位到那个节点就行了。一般这一步都可以获取到一个数组。
array[...] //获取自己想要的数据。});
string responseXml = HttpRequest(requestXml); //上游异常错误
if (string.IsNullOrEmpty(responseXml))
{
item.ResultCode = "00011";
item.ResultMsg = "上游提交返回异常";
response.Add(item);
return response;
}
XmlDocument xmlResult = new XmlDocument();
xmlResult.InnerXml = responseXml;
//开始解析xml(返回错误代码的时候) XmlNode errNode = xmlResult.SelectSingleNode("//Error");
if (errNode != null)
{
item.ResultCode = "18002";
item.ResultMsg = errNode.SelectSingleNode("//Error").Attributes["Code"].Value + "|" + errNode.SelectSingleNode("//Error").InnerText;
response.Add(item);
return response;
} //开始解析xml()
//通过判断返回的数据量,确认是否有数据返回
XmlNode retNode = xmlResult.SelectSingleNode("//RecordCount");
if (Convert.ToInt32(retNode.InnerText) <= 0)
{
//未找到数据
item.ResultCode = "00011";
item.ResultMsg = "无数据返回";
response.Add(item);
return response;
}
//成功
XmlNodeList hotelList = xmlResult.SelectNodes("//Item");
XmlNodeList roomList = null;
XmlNodeList rateList = null;
XmlNodeList fangtList = null;
XmlNodeList imgList = null;
foreach (XmlNode node in hotelList)
{
Echao.Entity.JinRiHotel.JinRiMsg msg = new Entity.JinRiHotel.JinRiMsg();
msg.ResultCode = "00000";
msg.ThreeCodeCity = node.SelectSingleNode("City").Attributes["Code"].Value;
msg.CityName = node.SelectSingleNode("City").InnerText;
msg.HotelCode = node.SelectSingleNode("Hotel").Attributes["Code"].Value;
msg.HotelName = node.SelectSingleNode("Hotel").InnerText;
msg.Address = node.SelectSingleNode("Address").InnerText;
msg.RankCode = node.SelectSingleNode("Rank").Attributes["Code"].Value;
msg.RankName = node.SelectSingleNode("Rank").InnerText;
msg.Regions = node.SelectSingleNode("Regions").SelectSingleNode("Region").InnerText;
msg.Businesses = node.SelectSingleNode("Businesses").SelectSingleNode("Business").InnerText;
msg.Report = node.SelectSingleNode("Reports").SelectSingleNode("Report").InnerText;
//开始获取room房型数据
roomList = node.SelectSingleNode("Rooms").ChildNodes;
foreach (XmlNode room in roomList)
{
roomEntity.ResultCode = "00000";
roomEntity.RoomCode = room.SelectSingleNode("RoomName").Attributes["Code"].Value;
roomEntity.RoomName = room.SelectSingleNode("RoomName").InnerText;
roomEntity.BedType = room.SelectSingleNode("BedType").InnerText;
roomEntity.AddBed = room.SelectSingleNode("AddBed").InnerText;
roomEntity.Floors = room.SelectSingleNode("Floors").InnerText;
roomEntity.Description = room.SelectSingleNode("Description").InnerText;
roomEntity.Area = room.SelectSingleNode("Area").InnerText;
msg.Rooms.Add(roomEntity);
//开始获取房价数据
rateList = room.SelectSingleNode("Rates").ChildNodes; foreach (XmlNode rate in rateList)
{
Echao.Entity.JinRiHotel.RoomRate rateEntity = new Entity.JinRiHotel.RoomRate();
rateEntity.Date = rate.SelectSingleNode("Date").InnerText;
rateEntity.PaymentType = rate.SelectSingleNode("PaymentType").InnerText;
rateEntity.SalePrice = rate.SelectSingleNode("SalePrice").InnerText;
rateEntity.DisplayPrice = rate.SelectSingleNode("DisplayPrice").InnerText;
rateEntity.BalsPrice = rate.SelectSingleNode("BalsPrice").InnerText;
rateEntity.Commisions = rate.SelectSingleNode("Commissions").InnerText;
rateEntity.CommisionsRatio = rate.SelectSingleNode("Commissions").Attributes["Ratio"].Value;
rateEntity.Meal = rate.SelectSingleNode("Meal").InnerText;
rateEntity.BroadNet = rate.SelectSingleNode("BroadNet").InnerText;
//添加房价
roomEntity.Rates.Add(rateEntity);
} //开始获取房态数据
fangtList = room.SelectSingleNode("Availabilities").ChildNodes; foreach (XmlNode ft in fangtList)
{
Echao.Entity.JinRiHotel.RoomAvailabilities availabilities = new Entity.JinRiHotel.RoomAvailabilities();
availabilities.Date = ft.SelectSingleNode("Date").InnerText;
availabilities.PaymentType = ft.SelectSingleNode("PaymentType").InnerText;
availabilities.Status = ft.SelectSingleNode("Status").InnerText;
availabilities.StatusCode = ft.SelectSingleNode("Status").Attributes["Code"].Value;
//添加房态
roomEntity.Availabilities.Add(availabilities);
} }
//开始获取图片数据
imgList = node.SelectSingleNode("Links").ChildNodes;
foreach (XmlNode img in imgList)
{
;
link.Text = img.SelectSingleNode("Text").InnerText;
link.ThumbNail = img.SelectSingleNode("ThumbNail").InnerText;
link.Image = img.SelectSingleNode("Image").InnerText;
//添加图片
msg.ImgLinkes.Add(link);
}
response.Add(msg);
}我想说 ,给了给你,你能看懂么 ?
c#解析xml
不管你访问什么WebServices,它最后一般都会返回一个结果,这个结果或许是一个object获取是一个string,总之要根据你要的操作来根据结果判断。你后台访问,直接导入名称,创建对象就可以了,然后获取其所包含的方法,看看其返回值就行了,对象-看看其中的属性呗,string打印出来看看呗。这没什么好纠结的。
不好意思我是新手,之前没接触过XML,我将获得的结果转为了xmlnode,但我想获取图中error节点的值,怎么获取?谢谢?
这样对不对?