Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39
  1. #1

    Sito multilingua con XML e ASP

    Ciao a tutti,
    ho la necessità di fare un sito multilingua. Per questo ho deciso di utilizare ASP 3.0 + XML 1.0. Ma come faccio per estrarre la riga della traduzione dal file XML e visualizzarla?

  2. #2
    Troppo generico.
    Il file xml dove sta?
    Comunque, lo puoi leggere con l'oggetto XMLDOM o con XPATH

  3. #3
    grazie della risposta. Vorrei utilizzare Dom e il file xml sta in una cartella. E' strutturato così:

    <traduzione_prodotto>
    <lingua name="IT">
    <traduzione name="testo_01"></traduzione>
    </lingua>
    </traduzione_prodotto>

  4. #4
    codice:
    xmlFile = server.mapPath("/cartella/lang.xml")
    
    set objXml = server.createObject("Microsoft.XMLDOM")
    objXml.async = "false"
    objXml.load(xmlFile)
    
    function getValueByLabel(theLang,theApp)	
    set node = objXml.selectNodes("//traduzione_prodotto/lingua[@name=""" & theLang & """]/traduzione[@name=""" & theApp & """]")	
    	if node.length = 0 then call getValueByLabel("IT",theApp)
    	for i = 0 to node.length - 1
    	response.write node(i).selectSingleNode("value").text
    	next
    set node = nothing	
    end function
    
    call getValueByLabel("IT","testo_01")
    
    set objXml = nothing
    ' su questo flusso xml
    <traduzione_prodotto>
    <lingua name="IT">
    <traduzione name="testo_01">
    <value><![CDATA[testo testo testo]]></value>
    </traduzione>
    </lingua>
    </traduzione_prodotto>

  5. #5
    mi dà errore: Out of memory sulla riga:

    set node = XMLObject.selectNodes("//traduzione_prodotto/lingua[@name=""" & theLang & """]/traduzione[@name=""" & theApp & """]")

  6. #6
    A me l'esempio postato funziona.

  7. #7
    ecco quello che ho fatto:

    codice:
    'Inizializzo il parser XML
    Set XMLObject = Server.CreateObject("Microsoft.XMLDOM")
    XMLObject.async = "false"
    XMLObject.Load(Server.MapPath("lingua/" & strSessioneLingua & ".xml"))
    
    'Creo la funzione necessaria per estrarre il testo della lingua selezionata
    Function getValueByLabel(theLang, theApp)	
    Set node = XMLObject.SelectNodes("//traduzione_prodotto/lingua[@name=""" & theLang & """]/traduzione[@name=""" & theApp & """]")	
    	if node.length = 0 then call getValueByLabel(strLinguaBreve, theApp)
    	for i = 0 to node.length - 1
    	response.write node(i).selectSingleNode("value").text
    	next
    Set node = Nothing	
    End Function
    Set XMLObject = Nothing
    Richiamo la funzione con <%call getValueByLabel(strLinguaBreve,"testo_01")%>

  8. #8
    per caso il file deve essere dentro una cartella speciale? Me lo fà su qualsiasi pagina con questa funzione...

  9. #9
    Assicurati che strLinguaBreve contenga qualcosa.
    Fai un response.write di questa variabile.
    Nel tuo caso il file xml sembra che debba stare dentro la cartella lingua che sta allo stesso livello della pagina che lo richiama.

  10. #10
    ho provato il codice originale tuo senza nessuna modifica e non funziona lo stesso...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.