当我运行以下代码添加带有属性的元素时,它总是在末尾添加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");
答案 0 :(得分:3)
您正在向名称空间为""
的元素添加名称空间为"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");