0

タイトルがわかりにくい場合は申し訳ありませんが、これが私が達成したいことです。作成されてメソッドに渡される XmlWriter オブジェクトがあります

public static void foo(XmlWriter xw)
{
   xw.WriteStartElement("root");
}

この時点で XmlWriter がインスタンス化され、Xml 宣言が既に記述されています。ここで、ルート要素を記述したら、XmlWriter の Indent プロパティを true に設定する必要があります (XmlWriter の作成時に false に設定されていました)。このようなもの

public static void foo(XmlWriter xw)
{
   xw.WriteStartElement("root");
   // xw.Settings.Indent = true; - I know this won't work
   // continue writing elements...
}

その時点でインデントを設定する方法が見つかりません。何か案は ?

4

1 に答える 1

0

XmlTextWriterを使用します。次に、Indentationプロパティをインデントするスペースの数に設定できます。http://msdn.microsoft.com/en-us/library/system.xml.xmltextwriter.indentation.aspx

インデントプロパティを使用するには、コンテンツを混在させることはできません http://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings.indent.aspx

「要素に混合コンテンツが含まれていない限り、要素はインデントされます。混合要素コンテンツを書き出すためにWriteStringまたはWriteWhitespaceメソッドが呼び出されると、XmlWriterはインデントを停止します。混合コンテンツ要素が閉じられると、インデントが再開されます。」

于 2013-01-09T16:29:48.403 に答える