J'utilise La sortie XML attendue est la suivante: P > Toutefois, si, par exemple, l'introduction est vide, le résultat XML i get comme suit: p> tandis que je m'y attendrais Être: P> xmltextwriter code> et son
EritelementsRing (code> méthode, par exemple:
<User>
<Username>value</Username>
<Email></Email>
</User>
4 Réponses :
Il n'échume pas
Il est possible de le forcer à produire
Si tel est un problème, vous avez tous droit de crier à quiconque vous oblige à écrire intégralement les tags; Ils doivent suivre des spécifications XML de base.
Votre sortie est correcte. Un élément sans contenu doit être écrit comme Vous pouvez forcer l'utilisation de la balise complète en appelant greatfulendelement () p>
writer.WriteStartElement("User");
writer.WriteFullElementString("Username", inputUserName);
writer.WriteFullElementString("Email", inputEmail);
writer.WriteEndElement();
J'ai utilisé exactement la même solution que vous avez fournie et la méthode WarkefulendElement () ne semble pas fonctionner ... Methinks Cette méthode est défectueuse.
J'ai trouvé une solution de contournement en C #. Si le (string.length == 0), remplacez ensuite la chaîne vide avec un nouveau caractère d'échappement, c'est-à-dire «\ n»
Votre code devrait être:
using (XmlWriter writer = XmlWriter.Create("filename.xml")) { writer.WriteStartElement("User"); writer.WriteElementString("Username", inputUserName); writer.WriteElementString("Email", inputEmail); writer.WriteEndElement(); }
laissant cela ici au cas où quelqu'un en a besoin; Étant donné qu'aucune des réponses ci-dessus ne l'a résolu pour moi, ou semblait trop excéder.
w.Formatting = Formatting.Indented;