繁体   English   中英

如何通过设置项目名称空间来摆脱xmlns =“”

[英]How to get rid of xmlns=“” by setting project namespace

当我运行以下代码以添加具有属性的元素时,总是在末尾添加xlmns =“”。 我读过我需要为其父级或类似名称设置名称空间。 奇怪的是,在文件中,父项确实已经设置了名称空间,所以我不太清楚为什么在加载文档时不会考虑这一点。 但是无论哪种方式,我只想知道如何告诉它名称空间在那里,所以它将停止在所有内容的末尾添加xlmns =“”。

XmlDocument xDoc = new XmlDocument();
xDoc.Load(projectFile);

// ...
// ...

var n = xDoc.CreateNode(XmlNodeType.Element, "Compile", null);
var a = xDoc.CreateAttribute("Include");
a.Value = filePath;
n.Attributes.Append(a);  
itemGroupNode.AppendChild(n);
xDoc.Save(@"c:\projects\BusinessObjects\BusinessObjects.csproj");

您正在将名称空间为""的元素添加到名称空间为"http://schemas.microsoft.com/developer/msbuild/2003"的元素中。 这意味着新元素需要xmlns属性。

如果添加名称空间为"http://schemas.microsoft.com/developer/msbuild/2003"的元素,则不需要xmlns属性(因为它是从父元素继承的):

var n = xDoc.CreateNode(XmlNodeType.Element, "Compile",
            "http://schemas.microsoft.com/developer/msbuild/2003");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM