Comment spécifier un xmlns pour XDocument?
J'ai essayé:
textBox1.Text = new XDocument(new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("root1", new XAttribute( "xmlns", @"http://example.com"), new XElement("a", "b"))
).ToString();
Mais j'obtiens:
The prefix '' cannot be redefined from '' to 'http://example.com' within the same start element tag.
J'ai aussi essayé de substitution (selon une réponse que j'ai trouvé) :
XAttribute(XNamespace.Xmlns,...
Mais a eu une erreur.
Note: je ne cherche pas à avoir plus d'un xmlns dans le document.
Peut-être que ce travail pour vous: stackoverflow.com/a/2874572/1373170
OriginalL'auteur ispiro | 2013-02-12
Vous devez vous connecter pour publier un commentaire.
La façon dont le
XDocument
API travaille avec l'espace de noms de champs est commeXName
instances. Ces sont assez facile à travailler avec, aussi longtemps que vous acceptez qu'un nom XML n'est pas seulement une chaîne de caractères, mais une étendue d'identification. Voici comment je le fais:Résultat:
Note le
+
opérateur est surchargé d'accepter uneXNamespace
et unString
entraîner etXName
instance.Eh bien, je pense que c'est assez simple, et il a vraiment conduit à la maison que ce que vous faites est de créer des espaces de noms, et pas seulement des chaînes de caractères. Si vous voulez moins de code pour les espaces de noms, les
System.Xml.XmlDocument
classe utilise un gestionnaire de Noms de garder une trace de l'espace de noms racine, et vous pouvez faire comme si elle n'existe pas, une fois que vous obtenez installé à droite.Voir ma prochaine question: stackoverflow.com/questions/14841517/... - je suis en train
XmlDocument
ainsi et ce n'est pas aider.Si tous les éléments enfants ont le même espace de noms, vous pouvez convertir le document XML à une chaîne, la sortie mécanisme peut éventuellement éluder la déclaration d'espace de noms sur des éléments enfants. Donc, si vous voyez
xmlns
sur les éléments d'enfant, vérifiez comment vous vous en êtes sortie. En outre, la présence de l'attribut d'espace de noms sur des éléments ne doit pas affecter la signification réelle du document XML.Yup, après quelques de bidouiller, j'ai réussi à ajouter l'espace de Noms de la sortie mécanisme de travailler comme je le voulais.
OriginalL'auteur codekaizen