使用C#XmlDocument在XML中插入RootNode

时间:2017-03-27 14:44:24

标签: c# xml

我有一个XML格式的字符串,由RootNode返回,如下所示:

<Node1 Id = "1" Value = "a"/>
<Node2 Id = "2" Value = "b"/>
<Node3 Id = "3" Value = "c"/>

现在,我想要的是将返回的字符串嵌入根节点,例如

<XML>
   <Node1 .... />
   <Node2 .... />
</XML>

如何使用System.Xml命名空间(XmlDocument,ecc ..)执行此操作?

我有以下代码:

XmlDocument xml = new XmlDocument(); 
xml.Loadxml(stringWithoutRoot); 

提前谢谢。

编辑:好的抱歉我不清楚。我真正的问题是这个。我有很多方法实际上做同样的事情,唯一改变的是必须执行的存储过程的名称。因此,为了使代码更具可读性,我想做的只是创建一个方法并将存储过程的名称作为其输入参数传递。我认为这更符合逻辑。

第二个问题:我注意到一些存储过程返回带有根节点的xml而其他存储过程没有返回,所以我的解决方案是将XML作为输入参数传递。

调用示例

executeSqlCommand(mySP, "<XML></XML>)

将把存储过程的结果放在XML中,如下所示

<XML>resultFromSPWithoutRootNode</XML>

所以我需要这样的东西

string result = ..... // some operation in DB

if (!string.IsNullOrEmpty(rootXMl))   // where rootXML is my second parameter
{
    append the result to the root node rootXML
}

缺少追加方式。

2 个答案:

答案 0 :(得分:1)

也许是这样的?

XmlDocument xml = new XmlDocument();
string nodesString = "<node/>" ;
xml.LoadXml("<root>" + nodesString+ "</root>");

答案 1 :(得分:0)

我会尝试使用此处建议的XmlDocumentFragment

Append XML string block to existing XmlDocument

谢谢