Problème d'ajout intempestif d'attributs xmlns vides par la classe XMLDocument. [Résolu]

Messages postés
3
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
19 septembre 2007
- - Dernière réponse : aid63
Messages postés
3
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
19 septembre 2007
- 19 sept. 2007 à 09:26
Bonjour à tous,

Je participe actuellement au développement d'un site Internet et j'ai un problème. Pour aider le référencement Google, on m'a demandé de créer un petit utilitaire pour créer le SiteMap du site.

Pour générer le document XML, j'utilise notamment la classe XMLDocument. Je vous expose grosso-modo le code et mon problème :

Private docXML as XmlDocument

'Création de l'objet
docXML = New XmlDocument()
'Ajout du tout premier noeud, qui contiendra tous les autres
docXML.AppendChild(docXML.CreateNode(XmlNodeType.Element, "urlset", "http://www.sitemaps.org/schemas/sitemap/0.9"))

A partir de là le document XML est prêt à se voir ajouter des noeuds fils. J'utilise pour celà une méthode dont le corps est celui-ci :

Public Sub AjouterLien(ByVal lien As String)
        Dim elemUrl As XmlElement = docXML.CreateElement("url")
        Dim elemLoc As XmlElement = docXML.CreateElement("loc")
        elemLoc.InnerText = lien
        elemUrl.AppendChild(elemLoc)
        docXML.DocumentElement.AppendChild(elemUrl)
End Sub

Une fois que tous les liens ont été ajoutés, j'utilise un objet XmlWriter pour sauvegarder mon document dans un fichier... et là c'est le drame . Le fichier généré est celui-ci :

<?xmlversion="1.0"encoding="utf-8"?>

   
        <loc>http://www.lesite.com/machin/bidule1/</loc>
   
   
        <loc>http://www.lesite.com/machin/bidule2/</loc>
   

etc.

Vous remarquerez les attributs xmlns="" qui apparaissent dans les balises .

Sauriez-vous comment faire pour faire en sorte qu'ils ne soit pas ajouter automatiquement, tout en laissant la balise ? J'ai retourné le problème dans tous les sens hier et je n'ai pas trouvé comment faire. Le sujet n'est pas très (pas du tout ?? ) documenté sur Internet.

Par avance, merci à tous !
Afficher la suite 
A voir également:

2 réponses

Meilleure réponse
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
3
Merci
Bonsoir,

étonnant ! il doit y avoir une explication simple au problème mais dans ton cas je te conseil de passer par un XmlWriter, niveau perf ca n'a rien à voir (surtout si ca t'as plusieurs milliers d'url ...) car le XmlWriter travail sur un stream alors que le XMLDocument sur le DOM chargé en mémoire ...
Je pense qu'en utilisant un XmlWriter tu n'auras plus ce problème.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jesusonline
Messages postés
3
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
19 septembre 2007
0
Merci
En effet, passer directement par un objet XmlWriter permet de contourner le problème.

Merci !
Commenter la réponse de aid63