XmlDocumentクラスなどではTextReader/TextWriterを入力元・出力先とすることができるようになっています。 こういったクラスでは、Console.In/Console.Outを指定することで標準入出力から直接読み書きすることができるようになります。
TextReader/TextWriterの代わりに標準入出力を入出力先に設定して読み書きを行う
using System;
using System.Xml;
class Sample {
static void Main()
{
var doc = new XmlDocument();
// 標準入力の内容をXMLとして読み込む
doc.Load(Console.In);
// ルート要素下に新しい要素を追加する
doc.DocumentElement.AppendChild(doc.CreateElement("bar"))
.AppendChild(doc.CreateTextNode("bar"));
// 編集したXMLを標準出力に書き込む
doc.Save(Console.Out);
}
}
実行結果例
>type sample.xml <?xml version="1.0" ?> <doc> <foo>foo</foo> </doc> >type sample.xml | sample.exe <?xml version="1.0"?> <doc> <foo>foo</foo> <bar>bar</bar> </doc>