コードで直接使用するか、exe に組み込み、コマンドラインで " myexe from.xml to.xml
" として呼び出すことができる小さな C# サンプルを次に示します。
using System.Xml;
static void Main(string[] args)
{
XmlWriterSettings settings = new XmlWriterSettings {
NewLineHandling = NewLineHandling.Entitize,
NewLineOnAttributes = true, Indent = true, IndentChars = " ",
NewLineChars = Environment.NewLine
};
using (XmlReader reader = XmlReader.Create(args[0]))
using (XmlWriter writer = XmlWriter.Create(args[1], settings)) {
writer.WriteNode(reader, false);
writer.Close();
}
}
サンプル入力:
<Node><ChildNode value1='5' value2='6' value3='happy' /></Node>
サンプル出力 ( で削除できることに注意<?xml ...
してくださいsettings.OmitXmlDeclaration
):
<?xml version="1.0" encoding="utf-8"?>
<Node>
<ChildNode
value1="5"
value2="6"
value3="happy" />
</Node>
ファイルに書き込むのではなく文字列が必要な場合は、次のように交換するだけであることに注意してくださいStringBuilder
。
StringBuilder sb = new StringBuilder();
using (XmlReader reader = XmlReader.Create(new StringReader(oldXml)))
using (XmlWriter writer = XmlWriter.Create(sb, settings)) {
writer.WriteNode(reader, false);
writer.Close();
}
string newXml = sb.ToString();