使用c#将xml字符串附加到现有xmlfile中

时间:2011-12-05 08:11:34

标签: c# xml

我有一个像这样的xml:

<name>

<class>

</class>

</name>

然后我想添加像这样的标签

<tia:Demographic><Age/><DOB/></tia:Demographic>

介于

之间
<class>

我们怎么能这样做。

我正在使用以下代码。

XDoc.LoadXml(@"<name><class></class></name>");   
XmlDocumentFragment xfrag = XDoc.CreateDocumentFragment(); 
 xfrag.InnerXml = @"<tia:Demographic><Age/><DOB/></tia:Demographic>";
 XDoc.DocumentElement.FirstChild.AppendChild(xfrag); 
XDoc.Save(@"D:\test.xml");

但它会抛出错误:tia:not a registered namespace

2 个答案:

答案 0 :(得分:4)

使用XmlNamespaceManager 注册命名空间。

答案 1 :(得分:2)

您需要注册命名空间:

class Program
{
    static void Main()
    {
        var xdoc = new XmlDocument();
        xdoc.LoadXml(@"<name><class></class></name>");
        xdoc.DocumentElement.SetAttribute("xmlns:tia", "http://tia.com");
        var node = xdoc.CreateElement("tia", "Demographic", "http://tia.com");
        var xfrag = xdoc.CreateDocumentFragment();
        xfrag.InnerXml = @"<Age/><DOB/>";
        node.AppendChild(xfrag);
        xdoc.DocumentElement.FirstChild.AppendChild(node);
        xdoc.Save(Console.Out);
    }
}