1

既存の XML ファイルがあります。新しいコンテンツはXmlWriter(またはXmlTextWriter、どちらも同じ動作を示すため、どちらでも構いません) を介して追加されます。

問題:
新しいコンテンツがインデントでフォーマットされていません。

XmlWriterwithIndent=trueおよびIndentCharsspace に設定した場合の出力例:

<?xml version="1.0"?>
<RootContext Type="ETSP">
<Root><Element1>1</Element1><Element2>2</Element2><Element3>3</Element3><Element4>4</Element4><Element5>5</Element5></Root></RootContext>

このサンプル コードを使用して追加の XML コンテンツを作成し、それを既存の XML に追加します ( <RootContext Type="ETSP"> ...):

        XElement srcTree = new XElement("Root",
            new XElement("Element1", 1),
            new XElement("Element2", 2),
            new XElement("Element3", 3),
            new XElement("Element4", 4),
            new XElement("Element5", 5));

XmlTextReader追加している既存の XML は、 /経由で読み取られXElement.Load()ます。

これは、同じ設定を使用して、上から生成されたスニペットのみを含む新しい XML を作成するときに発生します。

<?xml version="1.0"?>
<Root>
   <Element1>1</Element1>
   <Element2>2</Element2>
   <Element3>3</Element3>
   <Element4>4</Element4>
   <Element5>5</Element5>
</Root>

偉大な。適切にインデントされ、フォーマットされています-まさに私が欲しいものです。

今 - 既存の XML コンテンツに追加するときにインデントされた書式を取得するにはどうすればよいですか?

4

1 に答える 1

0

FWIW - John Saunders によって提案されたアプローチを使用して、問題なくXDocument動作します。

新しいコンテンツは、必要な書式設定で既存のドキュメントに追加されます。

于 2015-07-22T07:41:40.203 に答える