Xdocument n'a pas l'impression de la déclaration
J'essaie d'utiliser le domainpeople.com API et pour ce faire j'ai besoin d'utiliser des fichiers XML.
Actuellement, j'ai une erreur disant "apiProtocol n'est pas trouvé" je suppose alors que mon document Xml est mal formé.
Le xml en cours envoyée est :
<apiProtocol version="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="checkrequest.xsd">
<checkRequest user="ifuzion" password="fish4gold121" reference="123456789">
<domain name="google.com" />
</checkRequest>
</apiProtocol>
Apparemment le <?xml?>
partie ne s'imprime pas.
Mon code est fondamentalement quelque chose de similaire à :
XDocument xDocument = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("Books"));
(J'ai dépouillé mon code pour une question de simplicité, mais la structure est exactement la même).
Est-il une raison pourquoi XDocument ne pas imprimer le <?xml?>
partie ? Il semble que, avec XmlDocument, il fonctionne, mais pas avec XDocument ... un indice ?
OriginalL'auteur Erick | 2009-06-29
Vous devez vous connecter pour publier un commentaire.
Comment êtes-vous l'impression du contenu de votre
XDocument
?La
.ToString()
méthode ne permet pas d'inclure l'en-tête xml, mais le.Save()
méthode.Edit: La même réponse a été donnée ici.
Avez-vous trouvé une solution pour l'UTF-16 question? J'ai l'expérience de la même chose. Je suppose que c'est parce que les chaînes .NET UTF-16, et si vous n'êtes pas codant pour une séquence d'octets, il sera toujours UTF-16?
Il ressemble à Mork la réponse de l'offre à un potentiel fixe (stackoverflow.com/questions/1060164/...), mais vous avez à traduire manuellement entre une
XDeclaration.Encoding
chaîne et une réelle sortieEncoding
format.OriginalL'auteur CoderDennis
Comment voulez-vous sauver? Si je ne les suivants, la déclaration xml sort comme il se doit:
La sortie ressemble à ceci:
Cependant, si je plutôt passer un XmlWriter exemple, il me semble que si les paramètres de l'XmlWriter remplace ce qui est indiqué dans le XDocument:
La sortie ressemble à ceci:
Notez comment le codage changé à "utf-16" et l'indentation a changé. Si vous ajoutez un XmlWriterSettings instance indiquant l'encodage (et tous les autres paramètres que vous souhaitez contrôler), vous obtenez un meilleur résultat. Le code suivant fait ce que vous attendez:
De sortie:
settings.Encoding = Encoding.UTF8
ne suffira pas. Vous aurez toujours<?xml version="1.0" encoding="utf-16" standalone="yes"?>
(avec16
) parce que la représentation interne des chaînes .NET est UTF-16.OriginalL'auteur Fredrik Mörk
Solution pour la sérialisation de la chaîne:
OriginalL'auteur user1257110
Avez-vous essayez d'enregistrer le XDocument?
Regardez cette question comment-pour-imprimer-xml-version1-0-à l'aide d'-xdocument
Voici la documentation: XDocument.Méthode Save
OriginalL'auteur orandov