簡體   English   中英

linq到xml - 擺脫空白的xmlns

[英]linq to xml - get rid of blank xmlns

我正試圖擺脫我的xml文件中的空命名空間標簽。 我見過的所有解決方案都是從頭開始創建xml。 我有從前面的xml構造的各種xelements。 我正在做的就是

XElement InputNodes = XElement.Parse(InputXML);
m_Command = InputNodes.Element("Command");

它在任何地方添加xmlns =“”。 這真是令人生氣。 謝謝你的幫助。

MSDN博客上有一篇文章 ,展示了如何(合理地)輕松解決這個問題。 在輸出XML之前,您需要執行以下代碼:

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

正如海報所提到的,替代方案是在添加它時為每個元素名稱添加前綴,但這似乎是一個更好的解決方案,因為它更加自動化並節省了一些輸入。

我認為這篇文章的第二個答案是:

XElement Add函數將xmlns =“”添加到XElement

非常有用。 基本上如果你這樣做

XNamespace rootNamespace = doc.Root.Name.NamespaceName;
XElement referenceElement = new XElement(rootNamespace + "Reference");

那應該解決它。 所以我想你必須告訴它在創建元素時不要擔心特殊的命名空間。 奇。

可能就是這樣: 使用Linq Xml的空命名空間

這表示您的文檔與您添加的元素位於不同的默認命名空間中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM