| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | using PTMedicalInsurance.Variables;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks;using System.Xml;using System.Xml.Linq;using System.Xml.XPath;namespace PTMedicalInsurance.Helper{    class XmlHelper    {        /// <summary>        /// 组织中心入参        /// </summary>        /// <param name="infno"></param>        /// <param name="input"></param>        /// <returns></returns>        public  string setInput(XElement xInput)        {            XDocument XDoc = new XDocument();            XDoc.Add(xInput);            XDoc.Declaration = new XDeclaration("1.0", "GBK", "yes");            return XDoc.ToStringWithDeclaration(); //扩展方法 https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/extension-methods        }        /// <summary>        /// 根据JSonPath查找节点值,如果节点不存在则返回空值        /// </summary>        /// <param name="jo"></param>        /// <param name="jsonPath"></param>        /// <returns></returns>        public  string getDestValue(string source, string destPath)        {            try            {                XDocument XDoc = XDocument.Parse(source);                XElement XDest = XDoc.XPathSelectElement(destPath);                if (XDest != null)                    return XDest.Value;                else                    return "节点为空!";            }            catch (Exception ex)            {                return "查找XML节点异常:" + ex.Message;            }        }        public  string ToJSON(string source)        {            string json = "";            try            {                source = Regex.Replace(source, "<row",              "<row xmlns:json=\"http://james.newtonking.com/projects/json\" json:Array=\"true\" ", RegexOptions.IgnoreCase);                XDocument xDoc = XDocument.Parse(source);                json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xDoc.ToXmlDocument());                return json;            }            catch (Exception ex)            {                return "转换异常:" + ex.Message;            }            finally            {                Global.writeLog("XMLToJSON", source,json);            }        }        public string ToXML(string jsonSource)        {            try            {                XmlDocument xe = Newtonsoft.Json.JsonConvert.DeserializeXmlNode(jsonSource);                return xe.OuterXml;            }            catch (Exception ex)            {                return "转换异常:" + ex.Message;            }        }    }       public static class MyExtensions    {        /// <summary>        /// Doc输出无声明,强行补上        /// </summary>        /// <param name="doc"></param>        /// <returns></returns>        public static string ToStringWithDeclaration(this XDocument doc)        {            return doc.Declaration.ToString() + Environment.NewLine + doc.ToString();        }        /// <summary>        /// 无缩进格式(压缩格式)        /// </summary>        /// <param name="doc"></param>        /// <returns></returns>        public static string ToCompressString(this XDocument doc)        {            return doc.Declaration.ToString()  + doc.ToString(SaveOptions.DisableFormatting);        }        public static XmlDocument ToXmlDocument(this XDocument xDocument)        {            var xmlDocument = new XmlDocument();            using (var xmlReader = xDocument.CreateReader())            {                xmlDocument.Load(xmlReader);            }            return xmlDocument;        }        public static XDocument ToXDocument(this XmlDocument xmlDocument)        {            using (var nodeReader = new XmlNodeReader(xmlDocument))            {                nodeReader.MoveToContent();                return XDocument.Load(nodeReader);            }        }    }}
 |