为XML元素创建名称空间

时间:2012-08-06 15:33:30

标签: c# xml xaml windows-8

我在将新节点(带名称空间)添加到用于生成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);

导致此错误

对象引用未设置为对象的实例。

提前谢谢你:)

3 个答案:

答案 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")