2011-09-23 13 views
10

でフォーマットXMLの書き方: -私は分離ストレージにXMLファイルに書き込みをしようとしているが、私はこのようにそれをフォーマットしたいのXmlWriter

<SampleData> 
    <Item Property1="AliquaXX" /> 
    <Item Property1="Integer" /> 
    <Item Property1="Quisque" /> 
    <Item Property1="Aenean" /> 
    <Item Property1="Mauris" /> 
    <Item Property1="Vivamus" /> 
    <Item Property1="Nullam" /> 
    <Item Property1="Nam" /> 
    <Item Property1="Sed" /> 
    <Item Property1="Class" /> 
</SampleData> 

が、私はそれを働かせることができる場合、私はbuggeredよ誰でも助けてくれますか?

ありがとう、 苦労している初心者。

+1

どのようなコードがあり、その出力は何ですか? –

+0

なぜ値を格納せずにXMLを作成するのではなく、XMLを独立したストレージに書きたいのだろうか? – Alan

+0

あなたは物事を理解したことがありますか? – Sam

答えて

9

あなたはXmlWriterSettings経由でXML出力をカスタマイズすることができます。

コードは一切含まれていませんが、XmlWriterを作成するときにXmlWriterSettingsを設定できます。あなたはそれをしたXmlWriterとは関係ありませんが、あなたはXMLをフォーマットするためにそれを使用することができますDataSet.GetXML()

Dim column As DataColumn 
For Each column In DataSet.Tables.Item(0).Columns 
    column.ColumnMapping = MappingType.Attribute 
Next 
Dim xml As String = DataSet.GetXml() 

を使用することができます

myXmlWriter.Settings.Indent = true; 
myXmlWriter.Settings.IndentChars = "  "; // note: default is two spaces 
myXmlWriter.Settings.NewLineOnAttributes = false; 
myXmlWriter.Settings.OmitXmlDeclaration = true; 
+1

これはXmlWritterSettings.Identが読み取り専用で、 'System.Xml.XmlException'型の例外がスローされるため、これは不可能です – r1verside

+0

@ r1versideは私の目に見えます:https://msdn.microsoft.com/en-us/ library/system.xml.xmlwritersettings.indent(v = vs.110).aspx。私は最後にこれに答えて以来、しばらくしていますが、私はコードを自分で実行したと確信しています。また、Jon Skeetの答えは同様にXmlWriterSettingのIndentプロパティを設定することに注意してください。 – Sam

+0

設定プロパティは私のためにnullのままです。使用した 'new XmlTextWriter' – MrFox

18

希望の振る舞い(インデントなど)でXmlWriterSettingsを作成し、作成時にXmlWriterに渡す必要があると思われます。ただ、trueにIndentを設定することも十分かもしれ:

XmlWriterSettings settings = new XmlWriterSettings { Indent = true }; 
using (XmlWriter writer = XmlWriter.Create(..., settings)) 
{ 
    ... 
} 
-1

:あなたも同じようなものを使用することができます。

関連する問題