Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[ASP] Problema scrittura su XML

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[ASP] Problema scrittura su XML

Postdi Triumph Of Steel » 06/09/06 14:36

Ho creato una pagina asp che legge ogni nodo di un XML

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
&lt;![CDATA[&lt;strong&gt;Nuovo testo...&lt;/strong&gt;]]&gt;


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!
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Sponsor
 

Postdi Triumph Of Steel » 06/09/06 16:14

Ok, bisogna usare VBscript per forza...

quindi nella pagina che include la funzione, ho dovuto aggiungere prima di tutti gli include:
Codice: Seleziona tutto
<%@Language=VBScript%>

e la funzione è questa:
Codice: Seleziona tutto
Function writeXMLNode(node,text)
   Dim fileToInclude
   fileToInclude               = Server.MapPath("/includes/langs/" & lang & ".xml")

   Dim objXmlDom
   Set objXmlDom               = Server.CreateObject("Microsoft.XMLDOM")
   objXmlDom.async               = False
   objXmlDom.preserveWhiteSpace   = True
   objXmlDom.load fileToInclude

   Dim oNode,i
   Set oNode   = objXmlDom.getElementsByTagName(node)
   '   Necessario svuotare prima!
   oNode(i).text = ""
   oNode(i).appendChild(objXmlDom.createCDATASection(text))

   objXmlDom.save fileToInclude

   Set objXmlDom   = Nothing
   Set oNode      = Nothing
End Function
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00


Torna a Programmazione


Topic correlati a "[ASP] Problema scrittura su XML":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti