J'utilise le code suivant pour initialiser un xmldocument plus loin dans le processus, j'écris certaines valeurs à l'aide du code suivant P> <?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark xmlns="">
<!-- -->
</Placemark>
</kml>
6 Réponses :
owriter.writestartelement ("Platemark"); code> devrait fonctionner, car le noeud parent a déjà le bon espace de noms. P>
C'était comme ça que j'ai eu le code initialement et que cela donne aux XMLN vides. J'ai changé mon code pour le refléter, mettre l'espace de noms dans la rédaction de la plate-forme ne permettra pas d'écrire les éléments.
Avez-vous essayé:
oWriter.WriteStartElement("kml", "Placemark", "kml");
Je suppose que tu voulais dire kml non klm; édité sur cette hypothèse. Cela ne fonctionne toujours pas.
J'ai corrigé le problème en créant le document avec le code suivant (aucun espace de noms dans l'élément de document) et en le sauveillant avec le code suivant pour définir l'espace de noms avant la sauvegarde p> moDocument.DocumentElement.SetAttribute("xmlns", msNamespace);
moDocument.Save(msFilePath);
Il peut être valide, mais c'est une mauvaise pratique.
@Jason - sauf si vous pouvez offrir un «bon» moyen de le faire, cela n'est pas une «mauvaise» pratique; C'est le seul moyen d'y parvenir!
Vous avez besoin de sinon, l'élément de la plateforme est mis dans l'espace de noms NULL, c'est pourquoi l'attribut xmlns = "" code> est ajouté lorsque vous serialisez le XML . p> p>
Vous voulez dire que vous faites cela, et cela sertialise toujours avec XMLNS = "" sur l'élément de la plate-forme? Ou autre chose?
Même si vous faites que vous obtenez toujours xmlns = "" sur l'élément de la plate-forme.
Ceci est un ancien poste, mais juste pour éviter de futures mauvaises pratiques; Vous devriez Le préfixe XMLNS est utilisé uniquement pour déclarer des liaisons d'espace de noms et est par
Définition liée au nom de l'espace de noms http://www.w3.org/2000/xmlns/ .
Ça ne doit pas être déclaré. D'autres préfixes ne doivent pas être liés à cela
nom d'espace de noms, et il ne doit pas être déclaré comme l'espace de noms par défaut.
Les noms d'éléments ne doivent pas avoir le préfixe XMLNS. P>
blockQuote>
Le code suivant a fonctionné pour moi (
Pourquoi voulez-vous un xmlns rempli? L'espace de noms est la même chose du noeud parent.
@onof - Je ne veux pas de xmlns remplis, j'ai essayé sans commencer et puis avec pensant que c'était mieux. Voir le code révisé.