Afficher un message
Vieux 06/08/2008, 13h09   #1 (permalink)
cety64
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 31
Par défaut rectifier fichier xml généré par macro

Bonjour,

J'utilise le code ci-dessous pour générer un fichier xml.
J'ai un problème pour le contenu d'une balise dont le texte comporte des < et > interprétés en &lt; et &gt;

exemple : <logolink><!CDATA[http://...]]></logolink> qui lorsque que je lis dans notepad le fichier xml généré se retrouve en <logolink>&lt;!CDATA[http://...]]&gt;</logolink>

voici mon code ci-dessous issu d'un post de ce forum:

Code:
Sub CreationFichierXML(Plage As Range)
'
'Nécessite d'activer la référence "Microsoft XML, V..."
'
Dim XnodeRoot As IXMLDOMElement, oNode As IXMLDOMNode
Dim XNom As IXMLDOMElement
Dim XInfos As IXMLDOMElement
Dim Cmt As IXMLDOMComment
Dim Entete As Range, Cell As Range
Dim i As Integer, j As Integer
 
Set Entete = Plage.Rows(1)
Set Plage = Plage.Offset(1, 0).Resize(Plage.Rows.Count - 1, Plage.Columns.Count)

'----
Set objDOM = New DOMDocument

'Ajoute un commentaire qui reprend le nom de l'utilisateur et la date du jour.
Set Cmt = objDOM.createComment("Créé par " & Environ("username") & ", le " & Date)
Set Cmt = objDOM.insertBefore(Cmt, objDOM.childNodes.Item(0))
 
   
'Type de fichier
Set oNode = objDOM.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'")
Set oNode = objDOM.insertBefore(oNode, objDOM.childNodes.Item(0))
'----

Set XnodeRoot = objDOM.createElement("Portlet")
objDOM.appendChild XnodeRoot

For i = 1 To Plage.Rows.Count

    Set XNom = objDOM.createElement("Identity")
    XNom.setAttribute "Userinfo", Plage.Cells(i, 1)
    XnodeRoot.appendChild XNom
    
        Set XInfos = objDOM.createElement("LogoUrl")
        XInfos.Text = Feuil2.Cells(13, 4).Value
        XNom.appendChild XInfos
    
        Set XInfos = objDOM.createElement("LogoLink")
        XInfos.Text = Feuil2.Cells(13, 5).Value
        XNom.appendChild XInfos
    
        Set XInfos = objDOM.createElement("MailLabel")
        XInfos.Text = Feuil2.Cells(13, 6).Value
        XNom.appendChild XInfos
        
        Set XInfos = objDOM.createElement("MailRecipient")
        XInfos.Text = Plage.Cells(i, 2)
        XNom.appendChild XInfos

        Set XInfos = objDOM.createElement("MailSubject")
        XInfos.Text = Feuil2.Cells(13, 7).Value
        XNom.appendChild XInfos

Next i
 
objDOM.Save ActiveWorkbook.Path + "\" & Feuil2.Cells(13, 8).Value

Set XnodeRoot = Nothing
Set objDOM = Nothing
End Sub
Si vous avez une idée pour me dépanner soit pour modifier mon code, soit pour ouvrir le fichier xml et remplacer &lt; et &gt; en < et > ce serait formidable.

Bonne journée à tous.
cety64 est déconnecté   Réponse avec citation
ANNONCES