C#解析XML

来源:互联网 发布:淘宝网站营销策划方案 编辑:程序博客网 时间:2024/06/05 16:18

一、C#解析XML文件

void btnImport_Click(object sender, EventArgs e)        {            try            {                //判断是否已经选择了文件                if (string.IsNullOrEmpty(fuCameraXML.PostedFile.FileName))                {                    throw new Exception("请选择一个文件!");                }                //判断是否是.xml后缀的XML文件                string strExtName = System.IO.Path.GetExtension(fuCameraXML.PostedFile.FileName).ToUpper();                if (strExtName != ".XML")                {                    throw new Exception("请选择一个扩展名为.xml的XML文件!");                }                System.IO.FileInfo fiExcel = new System.IO.FileInfo(fuCameraXML.PostedFile.FileName);                string fileName = Server.MapPath("../../FileUpload/") + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + fiExcel.Name;                fuCameraXML.PostedFile.SaveAs(fileName);                XmlDocument xmlDoc = new XmlDocument();                xmlDoc.Load(fileName);                                XmlNode xmlRoot = xmlDoc.SelectSingleNode("VNMP");                XmlNode xmlJTJ = xmlRoot.SelectSingleNode("江苏省");                XmlNode xmlNJ = xmlJTJ.SelectSingleNode("4001_");                XmlNodeList lstJTJ = xmlJTJ.ChildNodes;                CameraClassService objCameraClassService = GpsBLLFactory.CreateService<CameraClassService>();                                //取一个摄像机类型                IList<CameraType> lstCameraType = GpsBLLFactory.CreateService<CameraTypeService>().GetCameraTypeList();                CameraType objCameraType =new CameraType();                if (lstCameraType.Count > 0)                {                    objCameraType = lstCameraType[0];                }                else                {                    throw new Exception("请至少维护一个摄像机类型!");                }                int intNum = 0;                foreach (XmlNode xmlArea in lstJTJ)                {                    string AreaName = xmlArea.Name;                    XmlNodeList lstCamera = xmlArea.ChildNodes;                    foreach (XmlNode xmlCamera in lstCamera)                    {                        Camera objCamera = new Camera();                        objCamera.CameraId = xmlCamera.SelectSingleNode("CameraID").InnerText;                                                 objCamera.CameraName = xmlCamera.SelectSingleNode("CameraName").InnerText;                        objCamera.VideoUrl = xmlCamera.SelectSingleNode("rtspurl").InnerText;                        objCamera.NodeName = AreaName;                        objCamera.TypeId = objCameraType.TypeId;                        objCamera.OrgId = SjtHttpContext.CurrentUser.OrgId;                        string struuid = xmlCamera.SelectSingleNode("uuid").InnerText;                        //查询是否存在此摄像头分类,没有则保存分类                        string strClassId = struuid.Substring(12, 3);                        CameraClass objCameraClass = objCameraClassService.GetCameraClass(strClassId);                        if (objCameraClass==null)                        {                            objCameraClass = new CameraClass();                            objCameraClass.ClassId = strClassId;                            objCameraClass.ClassName = strClassId;                            objCameraClass.OrgId = SjtHttpContext.CurrentUser.OrgId;                            objCameraClass.OrderNo = objCameraClassService.GetCameraClassMaxOrderNo();                            objCameraClassService.AddCameraClass(objCameraClass);                        }                        GpsBLLFactory.CreateService<CameraService>().AddCamera(objCamera, objCameraClass);                        intNum++;                    }                 }                ShowSuccessMessage("成功录入" + intNum + "条");            }            catch (Exception err)            {                ShowErrorMessage(err.Message);            }        }

二、C#解析XML字符串

假设从返回的response xml字符串为:

<?xml version="1.0" encoding="UTF-8"?> <users>   <user>     <col name="personid">人员编号</col>     <col name="idcard">身份证号</col>     <col name="card_n">卡号</col>     <col name="dna">dna条码号</col>   </user>   <user>     <col name="personid">人员编号2</col>     <col name="idcard">身份证号2</col>     <col name="card_n">卡号2</col>     <col name="dna">dna条码号2</col>   </user> </users>
解析的代码如下:
using System.Xml;XmlDocument xx = new XmlDocument();xx.LoadXml(responseFromServer);XmlNode xxNode = xx.SelectSingleNode("/users/user[1]");foreach (XmlNode xxNode2 in xxNode.ChildNodes){  Console.WriteLine(xxNode2.Name + "---" + xxNode2.InnerText); }
eg:

            //1、获取传输的xml字符串             string strGetBody = transaction.body;            //2、解析成相应的xml            XmlDocument xmlRoot = new XmlDocument();            xmlRoot.LoadXml(strGetBody);            XmlNode xmlreqInfo = xmlRoot.SelectSingleNode("reqInfo");            string idCard = xmlreqInfo.SelectSingleNode("idCard").InnerText;            string idType = xmlreqInfo.SelectSingleNode("idType").InnerText;

三、Other

http://www.cnblogs.com/a1656344531/archive/2012/11/28/2792863.html




0 0
原创粉丝点击