栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用C#从XML中删除所有名称空间?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用C#从XML中删除所有名称空间?

好吧,这是最终答案。我使用了很好的Jimmy想法(不幸的是,它本身并没有完成),并且使用了完整的递归功能才能正常工作。

基于接口:

string RemoveAllNamespaces(string xmldocument);

我在这里代表最终的干净通用的C#解决方案,用于删除XML名称空间:

//Implemented based on interface, not part of algorithmpublic static string RemoveAllNamespaces(string xmldocument){    XElement xmldocumentWithoutNs = RemoveAllNamespaces(XElement.Parse(xmldocument));    return xmldocumentWithoutNs.ToString();}//Core recursion function private static XElement RemoveAllNamespaces(XElement xmldocument)    {        if (!xmldocument.HasElements)        { XElement xElement = new XElement(xmldocument.Name.LocalName); xElement.Value = xmldocument.Value; foreach (XAttribute attribute in xmldocument.Attributes())     xElement.Add(attribute); return xElement;        }        return new XElement(xmldocument.Name.LocalName, xmldocument.Elements().Select(el => RemoveAllNamespaces(el)));    }

它正在100%正常工作,但是我没有对其进行太多测试,因此它可能无法涵盖某些特殊情况……但这是一个很好的起点。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/597010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号