0

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

它导致此错误

你调用的对象是空的。

先感谢您 :)

4

3 回答 3

1

如果您想创建具有特定命名空间的元素,请使用此调用

xmlDoc.CreateElementNS("using:Dictionary.Common", "local2:elementName")
于 2012-08-06T15:52:22.070 回答
1

根据http://msdn.microsoft.com/en-us/library/aa335908(v=vs.71),带有单个参数的 CreateAttribute 方法不设置命名空间,而是设置元素的名称。尝试使用此方法的其他排列之一。

于 2012-08-06T15:36:59.843 回答
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")
于 2012-08-06T15:49:43.467 回答