zoukankan      html  css  js  c++  java
  • C# 解析Xml接口

     1         public string GetWeather()
     2         {
     3             string weatherXML = GetRequestData("http://flash.weather.com.cn/wmaps/xml/china.xml?spm=a2c4e.10696291.0.0.5c5019a4nz9oyZ&file=china.xml");
     4             XmlDocument xml = new XmlDocument();
     5             xml.LoadXml(weatherXML);
     6             XmlNode root = xml.SelectSingleNode("china");
     7             var list = Newtonsoft.Json.JsonConvert.SerializeXmlNode(root);
     8             XmlNodeList childlist = root.ChildNodes;
     9             return list;
    10         }
    11 
    12         public static string GetRequestData(string sUrl)
    13         {
    14             //使用HttpWebRequest类的Create方法创建一个请求到uri的对象。
    15             HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(sUrl);
    16             //指定请求的方式为Get方式
    17             request.Method = WebRequestMethods.Http.Get;
    18             //获取该请求所响应回来的资源,并强转为HttpWebResponse响应对象
    19             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    20             //获取该响应对象的可读流
    21             StreamReader reader = new StreamReader(response.GetResponseStream());
    22             //将流文本读取完成并赋值给str
    23             string str = reader.ReadToEnd();
    24             //关闭响应
    25             response.Close();
    26             return str;
    27         }

            /// <summary>
            /// 解析xml接口 返回json对象
            /// </summary>
            /// <param name="m"></param>
            /// <param name="url">接口路径</param>
            /// <returns></returns>
            [HttpGet]
            public string XmlShi(Model m,string url)
            {
                HttpWebRequest request = WebRequest.Create("http://flash.weather.com.cn/wmaps/xml/china.xmlspm=a2c4e.10696291.0.0.5c5019a4nz9oyZ&file=china.xml") as HttpWebRequest;
    
                using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                {
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    var xmlStr = reader.ReadToEnd();
                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(xmlStr);
                    string json = JsonConvert.SerializeXmlNode(doc["china"]);
                    return json;
                }
            }





    ///前台页面
    @{
        ViewBag.Title = "Xml";
    }
    
    <h2>Xml</h2>
    
    <!DOCTYPE html>
    <html>
    <head>
        <title>JSONP——XML</title>
        <script src="jq.js"></script>
    </head>
    <body>
        <table class="table">
            <thead>
                <tr>
                    <td>省</td>
                    <td>英文</td>
                    <td>市</td>
                    <td>未知列1</td>
                    <td>未知列2</td>
                    <td>天气</td>
                    <td>未知列3</td>
                    <td>未知列4</td>
                    <td>状态</td>
                </tr>
            </thead>
            <tbody id="tb"></tbody>
    
        </table>
    
    </body>
    </html>
    <script src="~/Scripts/jquery-3.3.1.js"></script>
    <script>
        $(function () {
            $.ajax({
                url: "/Home/XmlShi",
                dataType: "json",
                success: function (d) {
    
                    for (var i = 0; i < d.china.city.length; i++) {
                        var tr = "<tr>"
                            + "<td>" + d.china.city[i]["@@quName"] + "</td>"
                            + "<td>" + d.china.city[i]["@@pyName"] + "</td>"
                            + "<td>" + d.china.city[i]["@@cityname"] + "</td>"
                            + "<td>" + d.china.city[i]["@@state1"] + "</td>"
                            + "<td>" + d.china.city[i]["@@state2"] + "</td>"
                            + "<td>" + d.china.city[i]["@@stateDetailed"] + "</td>"
                            + "<td>" + d.china.city[i]["@@tem1"] + "</td>"
                            + "<td>" + d.china.city[i]["@@tem2"] + "</td>"
                            + "<td>" + d.china.city[i]["@@windState"] + "</td>"
                            + "</tr>";
                        $("#tb").append(tr);
    
                        $.ajax({
                            url: "/Home/XmlAdd",
                            type: "post",
                            data: {
                                quName: d.china.city[i]["@@quName"],
                                pyName: d.china.city[i]["@@pyName"],
                                cityname: d.china.city[i]["@@cityname"],
                                state1: d.china.city[i]["@@state1"],
                                state2: d.china.city[i]["@@state2"],
                                stateDetailed: d.china.city[i]["@@stateDetailed"],
                                tem1: d.china.city[i]["@@tem1"],
                                tem2: d.china.city[i]["@@tem2"],
                                windState: d.china.city[i]["@@windState"]
                            },
                            success: function (d) {}
                        })
                    }
                }
            })
        })
    </script>  
    
    
    

      

     
  • 相关阅读:
    Ubuntu的启动配置文件grub.cfg(menu.lst)设置指南zz
    Qt/E客户端服务期间通信数据串行化
    开源协议简介BSD、 Apache Licence、GPL、LGPL、MIT转载
    Qt/E服务器到客户端的消息传递
    解决 Windows 和 Ubuntu 时间不一致的问题转载
    Qt/E服务器客户端架构
    Qt/E中的键盘设备管理
    Qt/E服务器客户端的通信机制
    解决 ssh 登录慢 转载
    c# 扩展方法奇思妙用变态篇一:由 Fibonacci 数列引出 “委托扩展” 及 “递推递归委托”
  • 原文地址:https://www.cnblogs.com/wmm0105/p/11764493.html
Copyright © 2011-2022 走看看