linq到xml - 摆脱空白的xmlns

Ste*_*eve 4 c# xml linq

我正试图摆脱我的xml文件中的空命名空间标签.我见过的所有解决方案都是从头开始创建xml.我有从前面的xml构造的各种xelements.我正在做的就是

XElement InputNodes = XElement.Parse(InputXML);
m_Command = InputNodes.Element("Command");
Run Code Online (Sandbox Code Playgroud)

它在任何地方添加xmlns ="".这真是令人生气.谢谢你的帮助.

Nol*_*rin 8

MSDN博客上有一篇文章,展示了如何(合理地)轻松解决这个问题.在输出XML之前,您需要执行以下代码:

foreach (XElement e in root.DescendantsAndSelf())
{
    if (e.Name.Namespace == string.Empty)
    {
        e.Name = ns + e.Name.LocalName;
    }
}
Run Code Online (Sandbox Code Playgroud)

正如海报所提到的,替代方案是在添加它时为每个元素名称添加前缀,但这似乎是一个更好的解决方案,因为它更加自动化并节省了一些输入.