Запись форматированного XML с помощью XmlWriter
Я пытаюсь записать файл 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>
но я искажен, если я могу это решить, может ли кто-нибудь помочь?
Спасибо,
борющийся новичок.
Ответы
Ответ 1
Вы можете настроить вывод xml с помощью XmlWriterSettings.
Вы не указали какой-либо код, но вы можете установить XmlWriterSettings при создании XmlWriter. Вы также можете просто использовать что-то вроде:
myXmlWriter.Settings.Indent = true;
myXmlWriter.Settings.IndentChars = " "; // note: default is two spaces
myXmlWriter.Settings.NewLineOnAttributes = false;
myXmlWriter.Settings.OmitXmlDeclaration = true;
Ответ 2
Я подозреваю, что вам нужно создать XmlWriterSettings
с желаемым поведением (отступ и т.д.), а затем передать это в XmlWriter
на создание. Просто установить Indent
на true может быть достаточно:
XmlWriterSettings settings = new XmlWriterSettings { Indent = true };
using (XmlWriter writer = XmlWriter.Create(..., settings))
{
...
}
Ответ 3
Если, как и я, вы реализуете свой собственный XmlWriter
вы можете сделать:
var myXmlWriter = new MyXmlWriter(stream, System.Text.Encoding.UTF8)
{
Formatting = Formatting.Indented
};
или сделайте так. this.Formatting = Formatting.Indented
в нем конструктор.
Ответ 4
Вы можете использовать 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.