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>
答案 0 :(得分: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();
答案 1 :(得分: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();