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メソッドは、名前空間ではなく、要素の名前を設定します。このメソッドの他の順列の1つを使用してみてください。

于 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 に答える