[英]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.