我有一个像这样的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
答案 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);
}
}