2014-01-29 63 views
0

筑巢我有一个XML看起来像:C#:添加元素,第二次在XML

<users> 
    <user id="0"> 
    <name>John</name> 
    <lastName>Smith</lastName> 
    <bills> 
     <bill id="0"> 
     <name>Water</name> 
     <forMonth>2013-12-01</forMonth> 
     <money>235</money> 
     <lastDayToPay>2014-01-02</lastDayToPay> 
     <payed>False</payed> 
     </bill> 
     <bill id="1"> 
     <name>Telephone</name> 
     <forMonth>2013-11-01</forMonth> 
     <money>690</money> 
     <lastDayToPay>2014-01-01</lastDayToPay> 
     <payed>True</payed> 
     </bill> 
    </bills> 
    </user> 

如何为用户添加新的法案,我有问题访问“法案”节点,并添加元素,它。我正在使用C#。

+2

显示你的代码。 – MarcinJuraszek

+1

看看'System.Xml.Linq' [XDocument Class](http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument(v = vs.110).aspx) – Harrison

+2

Hi @Carl,我注意到你提出了许多低质量或可疑质量的建议编辑。像if语句或嵌套的问题添加到问题是完全没有意义的;这些标签增加了零值或可搜索性。请不要这样做;请参考编辑指南来检查一个好的建议编辑,例如[我如何正确标记我的问题?](http://meta.stackexchange.com/q/18878)谢谢! –

回答

1

使用下面的代码

  XmlDocument myDocument = new XmlDocument(); 
      myDocument.Load(XMLFile); 
      XmlNode newNode = myDocument.CreateElement("bill"); 
      //add values; 
      var requiredNode = myDocument.ChildNodes.OfType<XmlElement>().Where(o => o.Name == "bills").First(); 
      requiredNode.AppendChild(newNode); 
      myDocument.Save(XMLFile); 
+0

感谢这一个,但有没有机会得到它,而不使用LINQ?谢谢 – ajduk

+0

@ajduk在你的问题中没有什么说你不能使用linq?无论如何,你为什么有这个限制? –

+0

是的,你可以把foreach循环放在myDocument.ChildNodes –