如何使用 .NET XML API 删除 xmlns 属性

2024-04-14

XmlElement.Attributes.Remove* 方法对于任意属性都可以正常工作,导致已删除的属性从 XmlDocument.OuterXml 属性中删除。然而 Xmlns 属性是不同的。这是一个例子:

XmlDocument doc = new XmlDocument();
doc.InnerXml = @"<Element1 attr1=""value1"" xmlns=""http://mynamespace.com/"" attr2=""value2""/>";
doc.DocumentElement.Attributes.RemoveNamedItem("attr2");
Console.WriteLine("xmlns attr before removal={0}", doc.DocumentElement.Attributes["xmlns"]);
doc.DocumentElement.Attributes.RemoveNamedItem("xmlns");
Console.WriteLine("xmlns attr after removal={0}", doc.DocumentElement.Attributes["xmlns"]);

结果输出是

xmlns attr before removal=System.Xml.XmlAttribute
xmlns attr after removal=
<Element1 attr1="value1" xmlns="http://mynamespace.com/" />

该属性似乎已从 Attributes 集合中删除,但并未从 XmlDocument.OuterXml 中删除。 我猜是因为这个属性的特殊含义。

问题是如何使用 .NET XML API 删除 xmlns 属性。 显然,我可以从其字符串表示形式中删除该属性,但我想知道是否可以使用 API 执行相同的操作。

@编辑:我说的是.NET 2.0。


非常感谢 Ali Shah,这个帖子完美地解决了我的问题! 这是一个 C# 转换:

var dom = new XmlDocument();
        dom.Load("C:/ExampleFITrade.xml));
        var loaded = new XDocument();
        if (dom.DocumentElement != null)
            if( dom.DocumentElement.NamespaceURI != String.Empty)
            {
                dom.LoadXml(dom.OuterXml.Replace(dom.DocumentElement.NamespaceURI, ""));
                dom.DocumentElement.RemoveAllAttributes();
                loaded = XDocument.Parse(dom.OuterXml);
            }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 .NET XML API 删除 xmlns 属性 的相关文章

随机推荐

  • 列出应用程序的活动和意图过滤器?

    我有兴趣激活另一个应用程序的活动 通过阅读 Android SDK 我知道最好以隐式意图执行此操作 但是 此活动并不驻留在我拥有的应用程序中 因此我不知道意图过滤器上的操作 类别和数据标志 如何检查 Android 应用程序元数据 例如活动
  • 将异步结果分配给数据绑定属性

    下面是一个示例实现 它使用 Metro API 和数据绑定 使用 MVVM 来填充下拉列表中的文件夹列表 View 模型的构造函数使用 SetFolders 方法 私有异步 该方法调用可等待方法 fileService GetFolders
  • Gulp-autoprefixer 抛出 ReferenceError: Promise 未定义

    我尝试让 gulp 编译我的 sass 然后使用 autoprefixitgulp autoprefixer但我收到错误 var gulp require gulp sass require gulp sass autoprefixer r
  • 清理 .NET 中动态 SQL 中的表/列名称? (防止SQL注入攻击)

    我正在生成一些动态 SQL 并希望确保我的代码是安全的SQL注入 http en wikipedia org wiki SQL injection 为了便于论证 这里是一个关于如何生成它的最小示例 var sql string Format
  • 乘以数据表中的列

    我有一个 C 数据表 其中包含 价格 列和 分配 列 我需要将价格列乘以分配列 并将结果放入价格列中 有没有一种方法可以在不循环桌子的情况下进行 我尝试过这样的事情 DataTable dt getData dt Columns Price
  • 函数输出函数文本而不是预期输出

    我已经用几种不同的方式提出了类似的问题 但这是最简单的版本 我试图在函数发生时通过键名值列表进行递增 但是 当调用该函数时 我得到的只是函数本身的文本 这是一个片段 var knlist kn10 2L1qvq6Tg6rMhEwNshr6d
  • 两个相互依赖的字段的淘汰验证

    考虑下面的代码 var MyObjectModel function myObject var self this self myNumber1 ko observable myObject number1 trimmed self myN
  • 从Azure功能(powershell)访问IP受限的URI

    我想知道给定的 Powershell 函数 例如 url http AnIPrestrictedURL xml xml new object System Net WebClient DownloadString url url 是一个 I
  • 如何在 JavaScript 中使用单选按钮将用户发送到新网站?

    我希望程序做的是制作一个表单并有 2 个单选按钮和 1 个文本 然后我希望它将文本和单选值折叠在一起并将我带到该页面 如果我输入类似 facebook 的文本 并且单选按钮值为 com 我希望它采用 facebook com 并将我发送到该
  • 升级到 razor 2 / mvc 4 后,为什么我的 razor 视图抱怨“}预期”?

    我有一个现有的 razor 1 mvc 3 视图 有一些嵌套if 非常简单 但是升级到 razor 2 mvc 4 后 它在运行时和编译时抱怨 BuildViews about expected 它曾经工作得很好 我已经检查了所有元素是否格
  • Flask 运行与 Python

    我很难使用 python 方法运行我的烧瓶应用程序 我使用没有问题 export FLASK APP microblog py flask run 但尝试使用 python microblog py 会导致以下错误 ImportError
  • 在代码块中链接头文件

    所以我在 OpenCV 中编写了代码 其中包含使用 Code Blocks 的 2 个头文件 当我编译文件时 除了两个 未定义的引用 错误之外没有任何错误 这是因为我使用了在头文件中声明的函数 我假设代码块自动链接头文件 我已经使用 inc
  • PIC18F 中的随机种子

    我将在 PIC18F2550 微控制器上运行修改后的 DES 代码 C 语言 为此 我使用 mplabx IDE v 2 和 Mplab xc8 v 1 30 要修改代码 我需要一个随机数 以便每次运行都会产生不同的数字 我想使用 rand
  • Geany编译

    不知道该把这个放在哪里 但我在 2 个系统 笔记本电脑和台式机 上运行 Geany 在我的笔记本电脑上它运行得很好 但在我的台式机上运行代码时出现此错误 whatevername 不被识别为内部或外部命令 可操作程序或批处理文件 我不知道w
  • 使用 Pandas 的欧几里得距离矩阵

    我有一个 csv 文件 其中包含以下格式的城市 纬度和经度数据 CITY LATITUDE LONGITUDE A 40 745392 73 978364 B 42 562786 114 460503 C 37 227928 77 4019
  • C++ pow 函数得到一个奇怪的结果[重复]

    这个问题在这里已经有答案了 使用某些版本的 minGW 以下代码将打印 99 int high high pow 10 2 std cout lt
  • String.IndexOf 方法的表达式树

    我应该如何构建表达式树string IndexOf substring StringComparison OrdinalIgnoreCase 我可以在没有第二个参数的情况下让它工作 StringComparison OrdinalIgnor
  • 是否有一种与系统无关的方法来确定表示当前目录级别和父目录级别的字符串?

    C 代码可以运行的不同环境对于文件和目录路径必须是什么样子有不同的约定 规则 一个常见的示例是分隔目录级别的字符 在 Windows 上 它是 在Linux上 它是 还有其他 也是未来的 系统可能遵循不同的规则 因此 为了创建健壮的代码 建
  • PostgreSQL:将结果与标题复制/粘贴到 Excel 中,无需代码

    我使用 MS SQL Server 2008 R2 MS SQL 我可以右键单击查询结果 将其与标题一起复制 粘贴到 Excel 中 以便于探索 现在使用 PG Admin PostgreSQL 我必须执行导出 文件 gt 导出 gt CS
  • 如何使用 .NET XML API 删除 xmlns 属性

    XmlElement Attributes Remove 方法对于任意属性都可以正常工作 导致已删除的属性从 XmlDocument OuterXml 属性中删除 然而 Xmlns 属性是不同的 这是一个例子 XmlDocument doc