このような手法を使用して、Xml ファイルのディレクトリを XmlDocument オブジェクトに読み込みます。
private static void StripAttributes(string filePath)
{
Contract.Requires(filePath != null);
var xmlDocument = new XmlDocument();
var encode = Encoding.GetEncoding("ISO-8859-1");
using (var sr = new StreamReader(filePath, encode))
{
xmlDocument.Load(sr);
}
これは機能しますが、出力された Xml をテキスト エディターでレンダリングすると、属性が一重引用符で囲まれ、子ノードが別の行に表示されます。
前の例:
<xml>
<xml2>
<xmlField id='foo' string='bar'><xmlValue>foobar</xmlValue></xmlField>
</xml2>
</xml>
フォーマット後の例:
<xml>
<xml2>
<xmlField id="foo">
<xmlValue>foobar</xmlValue>
</xmlField>
</xml2>
</xml>
比較のために、元の形式を同じままにする必要があります。
Xml の元の形式を保持する方法についてのアイデアはありますか?