2012-07-11 49 views
0
  XDocument doc = XDocument.Parse(_data) 
      XElement root = new XElement("student"); 
      doc.Element("marks").Add(root); 
      doc.Save(_data) 

的_data是反序列化的XML字符串和學生是根標籤要添加 doc.save投error.How保存根標籤?如何根標籤添加到字符串XML

字符串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

發佈錯誤消息。 – 2012-07-11 19:19:55

+0

'root'不是一個非常好的名稱,因爲一個元素_under_'' – 2012-07-11 19:27:52

回答

4

XDocument.Parse(_data)

IM簾布層_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(); 
+0

我們將_data保存爲數據庫中的nvarchar,所以它的字符串如何向此字符串添加根標記 – GANI 2012-07-11 19:43:34

+0

ok,請參閱編輯。 ~~~~ – 2012-07-11 20:03:59

+0

這種方式它沒有添加..我再次編輯的問題 – GANI 2012-07-11 21:09:06

2

如何:

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