J'ai une exigence pour faire un fichier XML - et le partenaire est plutôt collant sur l'en-tête. Apparemment, l'en-tête doit être exactement ceci:VB.NET XMLWriter: Comment changer le contenu de l'en-tête?
<?xml version="1.0"?>
Mais chaque fois que je crée un fichier XML j'obtenir des propriétés étrangères comme ceci:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
Le pirate en moi veut cesser d'utiliser XMLWriter pour rendre le fichier de sorte que j'ai plus de contrôle sur l'en-tête; "pas de problème, je vais juste écrire une boucle qui fait ses propres balises XML comme un StreamWriter ou quelque chose, oubliez cet objet XMLWriter ..." mais je dois admettre que XMLWriter a été plutôt élégant à utiliser jusqu'à présent; il doit sûrement y avoir quelque chose où je peux changer l'objet XMLWriterSettings pour dire "arrête de mettre vos propriétés personnalisées dans l'entête XML s'il vous plait", n'est-ce pas?
Voici le code VB concerné:
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
fonctionne parfaitement; mais je ne peux pas trouver un moyen de contrôler l'en-tête. Je peux trouver un moyen de l'enlever complètement bien sûr, mais ce n'est pas ce que nous voulons faire.
Modifier: merci pour l'aide; jusqu'à présent, une fois que nous avons supprimé le WriteStartDocument, il n'a plus d'affichage standalone = yes. Je ne peux pas l'obtenir pour arrêter d'ajouter l'encodage cependant. Des idées?
excellent merci! –
Je ne peux pas croire que cela n'a pas plus de votes, tout à fait raison. –