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

回答編集履歴

1

見直しキャンペーン中

2023/07/23 05:35

投稿

TN8001
TN8001

スコア10260

answer CHANGED
@@ -1,67 +1,67 @@
1
- こうでいいと思うのですが、どうでしょうか。
2
-
3
- ```C#
4
- using System;
5
- using System.IO;
6
- using System.IO.Compression;
7
- using System.Linq;
8
- using System.Text;
9
- using System.Xml;
10
- using System.Xml.Linq;
11
-
12
- namespace Questions291429
13
- {
14
- class Program
15
- {
16
- static void Main()
17
- {
18
- var xmldoc =
19
- @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>
20
- <PCROOT>
21
- <PInfo Key=""0"">oll</PInfo>
22
- <PInfo Key=""0"">tll</PInfo>
23
- <PInfo Key=""1"">ools</PInfo>
24
- <PInfo Key=""1"">oljl</PInfo>
25
- <PInfo Key=""1"">ollj</PInfo>
26
- </PCROOT>";
27
-
28
- var xdoc = XDocument.Parse(xmldoc);
29
- Console.WriteLine(xdoc.ToString());
30
- GZipCompress(xdoc, @"pc1.gz");
31
-
32
- var xdocloaded = GZipDecompress(@"pc1.gz");
33
- var key0 = xdocloaded.Element("PCROOT")
34
- .Elements("PInfo")
35
- .Where(p => p.Attribute("Key").Value == "1");
36
-
37
- foreach(var i in key0)
38
- {
39
- Console.WriteLine(i.Value);
40
- }
41
-
42
- Console.ReadKey();
43
- }
44
-
45
- static void GZipCompress(XDocument xdin, string gzpath)
46
- {
47
- using(var fs = File.Create(gzpath))
48
- using(var gs = new GZipStream(fs, CompressionMode.Compress))
49
- // しなくても読めたが中のファイルにBOMが付くのが気持ち悪い場合
50
- //using(var writer = new XmlTextWriter(gs, new UTF8Encoding(false)))
51
- {
52
- //xdin.Save(writer);
53
- xdin.Save(gs);
54
- }
55
- }
56
-
57
- static XDocument GZipDecompress(string gzpath)
58
- {
59
- using(var fs = new FileStream(gzpath, FileMode.Open, FileAccess.Read, FileShare.Read))
60
- using(var gs = new GZipStream(fs, CompressionMode.Decompress))
61
- {
62
- return XDocument.Load(gs);
63
- }
64
- }
65
- }
66
- }
1
+ こうでいいと思うのですが、どうでしょうか。
2
+
3
+ ```cs
4
+ using System;
5
+ using System.IO;
6
+ using System.IO.Compression;
7
+ using System.Linq;
8
+ using System.Text;
9
+ using System.Xml;
10
+ using System.Xml.Linq;
11
+
12
+ namespace Questions291429
13
+ {
14
+ class Program
15
+ {
16
+ static void Main()
17
+ {
18
+ var xmldoc =
19
+ @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>
20
+ <PCROOT>
21
+ <PInfo Key=""0"">oll</PInfo>
22
+ <PInfo Key=""0"">tll</PInfo>
23
+ <PInfo Key=""1"">ools</PInfo>
24
+ <PInfo Key=""1"">oljl</PInfo>
25
+ <PInfo Key=""1"">ollj</PInfo>
26
+ </PCROOT>";
27
+
28
+ var xdoc = XDocument.Parse(xmldoc);
29
+ Console.WriteLine(xdoc.ToString());
30
+ GZipCompress(xdoc, @"pc1.gz");
31
+
32
+ var xdocloaded = GZipDecompress(@"pc1.gz");
33
+ var key0 = xdocloaded.Element("PCROOT")
34
+ .Elements("PInfo")
35
+ .Where(p => p.Attribute("Key").Value == "1");
36
+
37
+ foreach(var i in key0)
38
+ {
39
+ Console.WriteLine(i.Value);
40
+ }
41
+
42
+ Console.ReadKey();
43
+ }
44
+
45
+ static void GZipCompress(XDocument xdin, string gzpath)
46
+ {
47
+ using(var fs = File.Create(gzpath))
48
+ using(var gs = new GZipStream(fs, CompressionMode.Compress))
49
+ // しなくても読めたが中のファイルにBOMが付くのが気持ち悪い場合
50
+ //using(var writer = new XmlTextWriter(gs, new UTF8Encoding(false)))
51
+ {
52
+ //xdin.Save(writer);
53
+ xdin.Save(gs);
54
+ }
55
+ }
56
+
57
+ static XDocument GZipDecompress(string gzpath)
58
+ {
59
+ using(var fs = new FileStream(gzpath, FileMode.Open, FileAccess.Read, FileShare.Read))
60
+ using(var gs = new GZipStream(fs, CompressionMode.Decompress))
61
+ {
62
+ return XDocument.Load(gs);
63
+ }
64
+ }
65
+ }
66
+ }
67
67
  ```