У меня есть требование сделать файл XML - и партнер довольно пристально относится к заголовку. Видимо, заголовок должен быть именно таким:
<?xml version="1.0"?>
Но всякий раз, когда я создаю XML-файл, я получаю посторонние свойства, подобные этому:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
Хакер во мне хочет прекратить использовать XMLWriter для создания файла, чтобы я мог лучше контролировать заголовок; «Нет проблем, я просто напишу цикл, который создает свои собственные XML-теги как StreamWriter или что-то в этом роде, забудем об этом объекте XMLWriter ...», но я должен признать, что XMLWriter до сих пор был довольно элегантен в использовании; несомненно, должно быть что-то, где я могу изменить объект XMLWriterSettings, чтобы он сказал: «Прекратите помещать свои пользовательские свойства в заголовок XML, пожалуйста», верно?
Вот соответствующий код VB:
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = " "
settings.NewLineChars = "\n"
Using writer As XmlWriter = XmlWriter.Create(strFileName, settings)
writer.WriteStartDocument(True)
For Each kvp As KeyValuePair(Of String, String) In dictArguments
Dim key As String = kvp.Key
Dim value As String = kvp.Value
writer.WriteStartElement(key)
writer.WriteString(value)
writer.WriteEndElement()
Next
End Using
Работает отлично; но я не могу найти способ контролировать заголовок. Конечно, я могу найти способ полностью удалить его, но мы этого не хотим.
Редактировать: спасибо за помощь; до сих пор, когда мы удалили WriteStartDocument, теперь он больше не отображается как standalone = yes. Я не могу заставить это прекратить добавлять кодировку как бы то ни было. Есть идеи?