10

私は.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

それぞれのタグに。私が今直面している問題は、それぞれのタグに書き込むために2つのレベルを深くする必要があるということですが、その方法がわかりません。

私は以下のコードを試しました:(動作していません

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を優先します。

よろしくお願い
します。

4

1 に答える 1

23

元のドキュメントがあると仮定します。

 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(....);
于 2012-10-08T14:18:43.293 に答える