我是.net初学者。我需要将一些数据添加到xml文件
xml文件是:
<stock> --- 1st level /* i dont want to create this because this exists */
<items> -- 2nd level
<productname>Toothpaste</productname>
<brandname>Colgate</brandname>
<quantity>12</quantity>
<price>10</price>
</items>
<items>
<productname>Toothpaste</productname>
<brandname>Pepsodent</brandname>
<quantity>20</quantity>
<price>12</price>
</items>
</stock>
我需要添加
productname --> Toothpaste
brandname --> CloseUp
quantity --> 16
price --> 15
到各自的标签。我现在面临的问题是,我需要深入两个级别来写入各自的标签,我不知道该怎么做。
我尝试了以下代码:(无法正常工作)
XDocument doc = new XDocument(
new XElement("stock", /* how to go inside existing "stock"? */
new XElement("items",
new XElement("productname", "Toothpaste"),
new XElement("brandname", "CloseUp"),
new XElement("quantity","16"),
new XElement("price","15"))));
必须有其他方法来实现这一点,我不知道。
也欢迎与linq无关的答案。但更喜欢linq因为我在我的项目中实现了完整的linq。
请帮助
提前致谢。
答案 0 :(得分:22)
假设您有原始文件:
var doc = XDocument.Load(...);
然后创建一个新元素(不是文档)
//XDocument doc = new XDocument(
// new XElement("stock", /* how to go inside existing "stock"? */
var newElement = new XElement("items",
new XElement("productname", "Toothpaste"),
new XElement("brandname", "CloseUp"),
new XElement("quantity","16"),
new XElement("price","15"));
然后插入:
doc.Element("stock").Add(newElement);
doc.Save(....);