XML利用接口显示并导入到数据库

只谈情不闲聊 提交于 2019-12-02 18:15:21
//控制器代码 /// <summary>
        /// 页面
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            return View();
        }
        /// <summary>
        /// 显示
        /// </summary>
        /// <returns></returns>//Model是根据你接口所需要的字段定义
        [HttpGet]
        public string XmlShow(XMLTable01 m)
        {
            string ConnString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
            var url = "是你所需要XML的接口";
            XmlDocument doc = new XmlDocument();//创建XML操作对象
            doc.Load(@url);//加载xml文件的路径
                           //doc.DocumentElement 是获取XML的根节点
            XmlNodeList UserNodes = doc.DocumentElement.ChildNodes;//获取根节点下的子节点,注意是集合,所以返回的是所有子节点
            foreach (var item in UserNodes)
            {
                XMLTable01 m1 = new XMLTable01();
                //读取每一个子节点下面的属性值
                XmlElement userEle = (XmlElement)item;//将类型强制转换为XmlElement
                m1.quName = userEle.GetAttribute("quName");
                //XmlNode userNameNode = userEle.SelectSingleNode("UserName");
                //uname = userNameNode.InnerText;
                m1.pyName = userEle.GetAttribute("pyName");
                m1.cityname = userEle.GetAttribute("cityname");
                m1.state1 = userEle.GetAttribute("state1");
                m1.state2 = userEle.GetAttribute("state2");
                m1.stateDetailed = userEle.GetAttribute("stateDetailed");
                m1.tem1 = userEle.GetAttribute("tem1");
                m1.tem2 = userEle.GetAttribute("tem2");
                m1.windState = userEle.GetAttribute("windState");
                XmlAdd(m1);
            }
            string json = JsonConvert.SerializeXmlNode(doc["china"]);
            return json;
        }
        /// <summary>
        /// xml添加数据库
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        [HttpPost]
        public int XmlAdd(XMLTable01 m)
        {
            string sql = "自己的sql添加语句";
            SqlConnection connection = SqlConnectionFactory.Connection;
            return connection.Execute(sql);
        }
//HTML页面@{
    Layout = null;
}

<!DOCTYPE html>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script>
        $(function () {
            $.ajax({
                url: "/Home/XmlShow",
                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);
                    }
                }
            })
        })
</script>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <table>
            <thead>
                <tr>
                    <td>quName</td>
                    <td>pyName</td>
                    <td>cityname</td>
                    <td>state1</td>
                    <td>state2</td>
                    <td>stateDetailed</td>
                    <td>tem1</td>
                    <td>tem2</td>
                    <td>windState</td>
                </tr>
            </thead>
            <tbody id="tb"></tbody>
        </table>
    </div>
</body>
</html>

//帮助类 使用了Dapper(也可以不用)

 public  class SqlConnectionFactory
    {
        private static readonly string ConnString =
           ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;


        private static object _obj = new object();

        public static SqlConnection Connection
        {
            get
            {
                SqlConnection connection = null;

                if (connection == null)
                {
                    lock (_obj)
                    {
                        if (connection == null)
                        {
                            connection = new SqlConnection(ConnString);
                        }
                    }
                }
                connection.Open();
                return connection;
            }
        }
    }

重点:别忘了引用NuGet里的Dapper

Web.config里别忘了连接数据库,写的时候别忘了自己所要创建的Model 如果是死数据可以自己在控制器写,

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!