Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将根标记添加到字符串xml_C#_.net_Xml - Fatal编程技术网

C# 如何将根标记添加到字符串xml

C# 如何将根标记添加到字符串xml,c#,.net,xml,C#,.net,Xml,_数据是反序列化字符串xml,student是要添加的根标记 doc.save抛出错误。如何保存根标记 字符串xml XDocument doc = XDocument.Parse(_data) XElement root = new XElement("student"); doc.Element("marks").Add(root); doc.Save(_data) 马丁 3/24/2012

_数据是反序列化字符串xml,student是要添加的根标记 doc.save抛出错误。如何保存根标记

字符串xml

            XDocument doc = XDocument.Parse(_data)
           XElement root = new XElement("student");
           doc.Element("marks").Add(root);
             doc.Save(_data)

马丁
3/24/2012 
百分比
33.3
10
这是添加根标记之前的字符串xml,一旦添加,它应该是这样的 添加根标记后,它应该如下所示

             <marks>
           <name>Martin</name> 
           <date>3/24/2012</date> 
           <field>Percent</name> 
           <new>33.3</new> 
           <old>10</old> 
            </marks> 

马丁
3/24/2012 
百分比
33.3
10
XDocument.Parse(\u数据)

表示
\u数据
是XML,即

doc.Save(\u数据)

要求
\u data
为有效文件名。像
“output.xml”

好的,看来你需要:

             <student>
            <marks>
           <name>Martin</name> 
           <date>3/24/2012</date> 
           <field>Percent</name> 
           <new>33.3</new> 
           <old>10</old> 
            </marks> 
            </student>
第三个例子:

您需要将现有xml添加到
,而不是相反

//doc.Save(_data)
_data = doc.ToString();
那么:

//untested    
XElement doc = XElement.Parse(_data);  // not XDoc
XElement root = new XElement("student", doc);
//doc.Save(_data)
_data = root.ToString();
或者

var doc = new XDocument();
var root = new XElement("student");
var innerXml = XElement.Parse(_data);
root.Add(innerXml);
doc.Add(root);
_data = doc.ToString();
或一行:

var doc = new XElement(
    new XElement("student",
        XElement.Parse(_data)
    )
);
_data = doc.ToString();

root
对于
下的元素不是一个很好的名称,我们将数据保存为数据库中的nvarchar,因此它的字符串如何将root标记添加到此字符串中
_data = new XElement(new XElement("student", XElement.Parse(_data))).ToString();