Написание отформатированного XML с помощью XmlWriter - PullRequest
15 голосов
/ 24 сентября 2011

Я пытаюсь записать файл XML в изолированное хранилище, но я хотел бы отформатировать его следующим образом: -

<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>

но я ошибаюсь, если смогу разобраться, кто-нибудь может помочь?

Спасибо, борющийся новичок.

Ответы [ 4 ]

22 голосов
/ 24 сентября 2011

Я подозреваю, что вам нужно создать XmlWriterSettings с желаемым поведением (отступ и т. Д.) И затем передать его в XmlWriter при создании. Достаточно просто установить для Indent значение true:

XmlWriterSettings settings = new XmlWriterSettings { Indent = true };
using (XmlWriter writer = XmlWriter.Create(..., settings))
{
    ...
}
11 голосов
/ 24 сентября 2011

Вы можете настроить вывод xml с помощью XmlWriterSettings .

Вы не включили никакого кода, но можете установить XmlWriterSettings при создании XmlWriter.Вы также можете просто использовать что-то вроде:

myXmlWriter.Settings.Indent = true;
myXmlWriter.Settings.IndentChars = "     "; // note: default is two spaces
myXmlWriter.Settings.NewLineOnAttributes = false;
myXmlWriter.Settings.OmitXmlDeclaration = true;
0 голосов
/ 09 июля 2019

Если, как и я, вы реализуете свой собственный XmlWriter, вы можете сделать:

var myXmlWriter = new MyXmlWriter(stream, System.Text.Encoding.UTF8)
{
    Formatting = Formatting.Indented
};

или сделать this.Formatting = Formatting.Indented в его конструкторе.

0 голосов
/ 24 сентября 2011

Вы можете использовать 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()

Это не связано с XmlWriter, но вы можете использовать его для форматирования XML.

...