码迷,mamicode.com
首页 > Windows程序 > 详细

C# XML 去xmlns:xsd和xmlns:xsi属性

时间:2018-03-21 11:48:06      阅读:999      评论:0      收藏:0      [点我收藏+]

标签:enum   sharp   sel   getchild   getattr   att   aced   ret   gate   

       public static XElement WithoutNamespaces(this XElement element)
        {
            if (element == null) return null;

            #region delegates:

            Func<XNode, XNode> getChildNode = e => (e.NodeType == XmlNodeType.Element) ? (e as XElement).WithoutNamespaces() : e;

            Func<XElement, IEnumerable<XAttribute>> getAttributes = e => (e.HasAttributes) ?
                e.Attributes()
                    .Where(a => !a.IsNamespaceDeclaration)
                    .Select(a => new XAttribute(a.Name.LocalName, a.Value))
                :
                Enumerable.Empty<XAttribute>();

            #endregion

            return new XElement(element.Name.LocalName,
                element.Nodes().Select(getChildNode),
                getAttributes(element));
        }

  调用

 var xDoc = XDocument.Parse(xml);
 var xRoot = xDoc.Root.WithoutNamespaces();

  

C# XML 去xmlns:xsd和xmlns:xsi属性

标签:enum   sharp   sel   getchild   getattr   att   aced   ret   gate   

原文地址:https://www.cnblogs.com/lonelyxmas/p/8615018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!