问题
I am a .net beginner. I need to add some data to xml file
the xml file is:
<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>
I need to add
productname --> Toothpaste
brandname --> CloseUp
quantity --> 16
price --> 15
to their respective tags. The problem I am facing now is that I need to go two levels deep to write to their respective tags, which i dont know how to do.
I tried the below code: (not working)
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"))));
There must be some other way to achieve this which I dont know.
Answers not related to linq are also welcome. but more preference to linq because I have implemented full linq in my project.
Please Help
Thanks in Advance.
回答1:
Assuming you have the original document:
var doc = XDocument.Load(...);
then create a new element (not a document)
//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"));
And then insert it:
doc.Element("stock").Add(newElement);
doc.Save(....);
来源:https://stackoverflow.com/questions/12783525/add-data-to-existing-xml-file-using-linq