Ich habe eine Herausforderung bei der Erstellung von XML-Datei mit VBA.
Vorweg, mein VBA kann eine korrekte VBA Datei erstellen.
ich nutze dafür DOMDocument.
Also, hier ein Codeausschnitt
Dim xmlDoc As DOMDocument
Dim nodePI As IXMLDOMProcessingInstruction
Dim nodeRoot As IXMLDOMElement
Dim nodeLevel1 As IXMLDOMElement
Set xmlDoc = New DOMDocument
Set nodePI = xmlDoc.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")
Set nodeRoot = xmlDoc.createElement("navigation")
....
Set node = xmlDoc.createElement(nodeName)
node.setAttribute "displayName", (displayName)
...
Später wird das Objekt xml.Doc gespeichert.
xmlDoc.Save (strPath & "\portalNavIdmXml.xml")
Das Problem stellt sich bei node.setAttribute "displayName",(display)Rein technisch wird eine XML-Node mit dem Attribut "displayName" korrekt erzeugt
z.B. navItemLevel1 displayName="Präsentkoerbe" (die Klammern denkt Euch bitte, die bekomme ich gerade nicht in den Text.
Das Problem stellt sich bei den Umlauten. ich muss die XML-Datei in ein Client auf einem Linux-System einspielen, der die Umlaut als HTML-Code haben will.
In diesem Fall also als ä
Soweit so gut. Also nutze ich im VBA die Replace Funktion
node.setAttribute "displayName", replace((displayName),"ä","ä")Die Replace Funktion funktioniert. Allerdings interpretiert die verwendete Methode später das "&" und ersetzt dies selbständig.
Das Ergebnis in der Datei ist
Ich brauche den Umlaut als ä
In der XML-Datei steht aber ä
Ich habe mir das object xmlDoc beim Verlauf durch den Code angesehen. Es behält immer den Eintrag ä.
Erst beim Speichern mit xmlDoc.Save erscheint in der Datei ä.
Ich vermute (!) also, dass das Problem in der Save-Methode liegt.
Hat einer von Euch eine Idee, wie ich das Ersetzen von & durch & verhindern kann?
Vielen Dank im Voraus!