• 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>  
    
    
    

      

     
  • 相关阅读:
    BZOJ 2219 数论之神 (CRT推论+BSGS+原根指标)
    BZOJ 2618: [Cqoi2006]凸多边形 (半平面交)
    BZOJ 1038: [ZJOI2008]瞭望塔
    BZOJ 1007: [HNOI2008]水平可见直线 (半平面交)
    BZOJ 1845: [Cqoi2005] 三角形面积并 (辛普森积分)
    BZOJ 2458: [BeiJing2011]最小三角形 (分治)
    BZOJ 3210: 花神的浇花集会 (切比雪夫距离)
    BZOJ 2013 : [Ceoi2010]A huge tower / Luogu SP6950 CTOI10D3
    BZOJ 3630: [JLOI2014]镜面通道 (网络流 +计算几何)
    bzoj 2820 YY的GCD
  • 原文地址:https://www.cnblogs.com/wmm0105/p/11764493.html
Copyright © 2020-2023  润新知