簡體   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