我在将新节点(带名称空间)添加到用于生成xaml的xml文档时遇到问题。我是这样做的:
XmlElement richTextColumns = xmlDoc.CreateElement("local2:RichTextColumns");
但我收到错误0xC00CE01D(调用xmlDoc.getxml时)。我尝试将属性xmlns:local2 =“using:App2.Common”添加到xmlDoc:
var att = xmlDoc.CreateAttribute("xmlns:local2");
att.InnerText = "using:Dictionary.Common";
xmlDoc.Attributes.SetNamedItem(att);
导致此错误
对象引用未设置为对象的实例。
提前谢谢你:)
答案 0 :(得分:1)
根据http://msdn.microsoft.com/en-us/library/aa335908(v=vs.71),具有单个参数的CreateAttribute方法不设置命名空间,而是设置元素的名称。尝试使用此方法的其他排列之一。
答案 1 :(得分:1)
您可以像通常那样创建元素,然后重新加载文档并添加要添加的命名空间属性。
XmlDocument doc = new XmlDocument();
doc.LoadXml("link to yuor xml");
XNamespace xmlns = "local2";
public static void SetDefaultXmlNamespace(XElement xelem, XNamespace xmlns)
{
foreach(var e in xelem.Elements())
e.SetDefaultXmlNamespace(xmlns);
}
doc.Root.SetDefaultXmlNamespace("local2")
答案 2 :(得分:1)
如果您想创建具有特定命名空间的元素,请使用this call:
xmlDoc.CreateElementNS("using:Dictionary.Common", "local2:elementName")