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

_data 是反序列化的字符串 xml,student 是要添加 doc.save 的根标记。保存会引发错误。如何保存根标记?

字符串 xml

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

这是添加根标签之前的字符串 xml,一旦添加,它应该看起来像添加根标签后它应该看起来像

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

2 回答 2

4

XDocument.Parse(_data)

意味着它_data是 XML,即"<tag> <sub /> </tag>"

doc.Save(_data)

需要_data是有效的文件名。像 "output.xml"

好的,看来您需要:

//doc.Save(_data)
_data = doc.ToString();

取3:

您需要将现有的 xml 添加到<Student>,而不是相反。

//untested    
XElement doc = XElement.Parse(_data);  // not XDoc
XElement root = new XElement("student", doc);
//doc.Save(_data)
_data = root.ToString();
于 2012-07-11T19:22:49.090 回答
3

怎么样:

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();

或单线:

_data = new XElement(new XElement("student", XElement.Parse(_data))).ToString();
于 2012-07-11T21:20:35.017 回答