首页 新闻 会员 周边

访问一个url,返回的是一个xml..如何获取里面的值

0
悬赏园豆:100 [已解决问题] 解决于 2012-10-08 17:43

 

别的网站提供一个xml的接口。。

访问后返回一个xml。。

问题来了,c#中如何读取这些数据?

XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("xxx.xml"));               //这里路径怎么写?
XmlNodeList nodes1 = doc.GetElementsByTagName("eps400")

初次接触xml。。希望各位指点下

Poiuyt_cyc的主页 Poiuyt_cyc | 初学一级 | 园豆:24
提问于:2012-10-08 16:09
< >
分享
最佳答案
1
var el = XElement.Load(new StringReader(返回的xml字符串));
var size = el.XPathSelectElement("/count").Attribute("size").Value;
var records= el.XPathSelectElement("/data/record");

引用:

using System.Xml.Linq;
using System.Xml.XPath;

收获园豆:100
向往-SONG | 老鸟四级 |园豆:4853 | 2012-10-08 16:26

试过了。。不行啊兄弟!

Poiuyt_cyc | 园豆:24 (初学一级) | 2012-10-08 17:09

@Poiuyt_cyc: 

哪里不行?

向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-08 17:12

@向往-SONG: 返回的xml字符串,这里填什么

Poiuyt_cyc | 园豆:24 (初学一级) | 2012-10-08 17:18

@Poiuyt_cyc: 

就是你图片贴的内容,你是不是先存成xml文件了?不用存直接把内容放进来就行了。

向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-08 17:21

@向往-SONG: 

恩,我再去试下。。谢谢兄弟你了!!!

Poiuyt_cyc | 园豆:24 (初学一级) | 2012-10-08 17:23

@向往-SONG: 

试过后可以了。。

但是var records= el.XPathSelectElement("/data/record");

这里拿出的值是<record eps400="4006148000" type="AAA" fl="3000元" occupytype="可选号"/>整行的。


我想读出来的结果是:

int num=4006148000
string type="AAA";

int price=3000;

 

应该怎么解决?加个.Attribute("eps400").Value;?

循环读的话用什么。。。

Poiuyt_cyc | 园豆:24 (初学一级) | 2012-10-08 17:37
其他回答(3)
0

把返回的xml序列化成一个类,用类的对象取对应的值

李宁宁 | 园豆:194 (初学一级) | 2012-10-08 16:20
0
string url="";//别家网站
XmlDocument XMLResponse = new XmlDocument();
HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
            req.Method = "GET";
            using (WebResponse wr = req.GetResponse())
            {
                using (StreamReader sr = new StreamReader(wr.GetResponseStream()))
                {
                    string Response = sr.ReadToEnd();
                    sr.Close();
                    XMLResponse.LoadXml(Response);
                }
            }

然后:

通过XMLResponse.GetElementsByTagName("count")[0]访问节点

通过node.Attributes["size"].Value得到节点中的属性值

田林九村 | 园豆:2367 (老鸟四级) | 2012-10-08 16:27

给老哥赞一个

支持(0) 反对(0) zhyanol | 园豆:200 (初学一级) | 2021-03-14 13:53
0

eps400  type  fl   occupytype 可以看作每个node属性来读取  

List<T> list=new List<T>();

T t=null;

foreach(XmlNode n in nodes1)

{

t=new T();

XmlAttribute attr=nodes1.Attributes["eps400"];

if(attr!=null)

{

t.eps400=attr.Value.Trim();

}

//同理获取其他属性

list.Add(t);

}

 

所有数据都放到了list中

TerryZou1989 | 园豆:226 (菜鸟二级) | 2012-10-08 16:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册