teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2019/05/15 01:26

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -28,7 +28,7 @@
28
28
  .Where(a => (string)a.Attribute("name") == "pan")
29
29
  .First();
30
30
  pan.Add(new XElement("substance", new XAttribute("name", "yeast")));
31
- output_xml.Save(output_xml__filename);
31
+ output_xml.Save(output_xml_filename);
32
32
  Console.WriteLine(output_xml);
33
33
  Console.ReadKey();
34
34
  }

2

修正

2019/05/15 01:26

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -28,6 +28,7 @@
28
28
  .Where(a => (string)a.Attribute("name") == "pan")
29
29
  .First();
30
30
  pan.Add(new XElement("substance", new XAttribute("name", "yeast")));
31
+ output_xml.Save(output_xml__filename);
31
32
  Console.WriteLine(output_xml);
32
33
  Console.ReadKey();
33
34
  }

1

追記

2019/05/15 01:25

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,1 +1,37 @@
1
- `xml.Save(ファイル名)`
1
+ `xml.Save(ファイル名)`
2
+
3
+ # 追記
4
+
5
+ 以下のコードは XMLFile1.xml を読み込み、pan の子要素として yeast を追加し、out.xml に書き込みます。
6
+
7
+ ```C#
8
+ using System;
9
+ using System.IO;
10
+ using System.Linq;
11
+ using System.Xml.Linq;
12
+
13
+ namespace ConsoleApp1
14
+ {
15
+ class Program
16
+ {
17
+ static void Main(string[] args)
18
+ {
19
+ string dir = AppDomain.CurrentDomain.BaseDirectory;
20
+ string xml_filename = Path.Combine(dir, "XMLFile1.xml");
21
+ string output_xml_filename = Path.Combine(dir, "out.xml");
22
+ var xml = XDocument.Load(xml_filename);
23
+ var output_xml = XDocument.Parse(xml.ToString());
24
+ var pan = output_xml
25
+ .Root
26
+ .Element("products")
27
+ .Elements("product")
28
+ .Where(a => (string)a.Attribute("name") == "pan")
29
+ .First();
30
+ pan.Add(new XElement("substance", new XAttribute("name", "yeast")));
31
+ Console.WriteLine(output_xml);
32
+ Console.ReadKey();
33
+ }
34
+ }
35
+ }
36
+
37
+ ```