XML:
- Codice: Seleziona tutto
<record>
<txt1><![CDATA[<strong>Testo blah blah</strong>]]></txt1>
<txt2><![CDATA[<strong>altro blah blah</strong>]]></txt2>
... ecc
La pagina asp ha un form semplicissimo con delle textarea in cui sono scritti i valori dei nodi (senza il CDATA)
La lettura è fatta tramite una funzione che legge direttamente nel nodo, e questa funziona.
Il problema sta nella scrittura.
essendo i nodi CDATA, ho bisogno di mantenere il codice HTML intatto.
Quando salvo il testo nel nodo XML, i tag HTML mi vengono cambiati.
Cioè, quando scrivo il testo:
- Codice: Seleziona tutto
<strong>Testo blah blah</strong>
nell'XML risulta:
- Codice: Seleziona tutto
<![CDATA[<strong>Nuovo testo...</strong>]]>
Tenere conto che il tag "<!--[CDATA[" lo devo scrivere io, concatenato al testo che devo modificare, in quanto la proprietà per scrivere il CDATA non la posso usare.
Questa è la funzione che scrive il testo nel nodo:
- Codice: Seleziona tutto
function writeXMLNode(node,text)
Dim objXmlDom,objCDATA
Dim fileToInclude
fileToInclude = Server.MapPath("/includes/langs/" & lang & ".xml")
Set objXmlDom = Server.CreateObject("Microsoft.XMLDOM")
objXmlDom.async = False
objXmlDom.preserveWhiteSpace = True
objXmlDom.load fileToInclude
Dim theNode,theNode2
Set theNode = objXmlDom.getElementsByTagName(node)
Dim i
theNode(i).Text = text
objXmlDom.save fileToInclude
Set objXmlDom = Nothing
Set theNode = Nothing
end function
mi sembra di capire che il problema sia nella scrittura dell'XML, in quanto il form invia i caratteri giusti, cioè se scrivo cosa mi arriva, mi scrve tranquillamente in bold (quindi con i tag <strong> non cambiati), ma quando lo salvo nell'XML me li cambia.
Manca qualcosa?
grazie!