Comment obtenir XML avec l'en-tête (<?xml version=“1.0”...)?
De considérer les éléments suivants du code simple qui crée un document XML et l'affiche.
XmlDocument xml = new XmlDocument();
XmlElement root = xml.CreateElement("root");
xml.AppendChild(root);
XmlComment comment = xml.CreateComment("Comment");
root.AppendChild(comment);
textBox1.Text = xml.OuterXml;
il affiche, comme prévu:
<root><!--Comment--></root>
Il n'est pas, cependant, l'affichage de la
<?xml version="1.0" encoding="UTF-8"?>
Alors, comment puis-je obtenir ainsi?
OriginalL'auteur ispiro | 2013-02-12
Vous devez vous connecter pour publier un commentaire.
Créer un XML déclaration à l'aide de XmlDocument.CreateXmlDeclaration Méthode:
Remarque: veuillez jeter un oeil à la documentation de la méthode, surtout pour
encoding
paramètre: il ya des exigences spéciales pour les valeurs de ce paramètre.+1. Veuillez noter que s'attendre à "Utf-8" est incompatible avec l'encodage de la chaîne (voir +1 Nicolas Carey réponse).
Merci. Mais je suis
OuterXml
ing et l'aide que. Ou ai-je raté quelque chose et il y a un problème, même alors?s = "<?xml version='1.0' encoding='UTF-8'?><root/>" est un mensonge, dans une certaine mesure (encodage de la
string
en C#/.Net n'est pas en UTF8). Selon le reste de votre code, de l'utilisation, il peut ou peut ne pas être un problème (c'est à dire si vous l'enregistrez à l'échec comme UTF16 vous êtes en difficulté).OriginalL'auteur
Vous devez utiliser un XmlWriter (qui écrit la déclaration XML par défaut). Vous devriez noter que C# chaînes de caractères UTF-16 et votre déclaration XML dit que le document est codé en UTF-8. Cette divergence peut causer des problèmes. Voici un exemple, en écrivant dans un fichier qui donne le résultat que vous attendez:
OriginalL'auteur
InsertBefore
paraît utile.OriginalL'auteur