别的网站提供一个xml的接口。。
访问后返回一个xml。。
问题来了,c#中如何读取这些数据?
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("xxx.xml")); //这里路径怎么写?
XmlNodeList nodes1 = doc.GetElementsByTagName("eps400")
初次接触xml。。希望各位指点下
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;
试过了。。不行啊兄弟!
@Poiuyt_cyc:
哪里不行?
@向往-SONG: 返回的xml字符串,这里填什么
@Poiuyt_cyc:
就是你图片贴的内容,你是不是先存成xml文件了?不用存直接把内容放进来就行了。
@向往-SONG:
恩,我再去试下。。谢谢兄弟你了!!!
@向往-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;?
循环读的话用什么。。。
把返回的xml序列化成一个类,用类的对象取对应的值
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得到节点中的属性值
给老哥赞一个
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中