Onlangs heb ik een aangepaste functie gemaakt voor het wegschrijven van een enkele waarde in een XML veldje in een database. Nu stel ik vast dat deze functie nu geen '<!CDATA[ ]' etc erom heen zet waarop ik het er handmatig in heb gezet mbv replace. Dit moet toch beter kunnen met de mogelijkheden van die xml-dll?
Code:
Function chgXmlValue(iXml As String, iField, iNewValue As Integer) As String
'On Error GoTo errHandler
Set objXML = New MSXML2.DOMDocument
If Not objXML.loadXML(iXml) Then Err.Raise objXML.parseError.errorCode, , objXML.parseError.reason
Set point = objXML.firstChild
'misschien nog iets bedenken voor met cdata en zonder... (select case oid)
'point.selectSingleNode(iField).dataType
point.selectSingleNode(iField).nodeTypedValue = "<![CDATA[" & iNewValue & "]]>"
chgXmlValue = Replace(Replace(objXML.xml, "<", "<", 1, 1, vbTextCompare), ">", ">", 1, 1, vbTextCompare)
end function