XSLT Sostituisci funzione non trovata

Sto scrivendo una trasformazione XSLT in cui desidero utilizzare la funzione Sostituisci per eseguire una corrispondenza regolare e sostituirla.

Tuttavia, Visual Studio 2008 lo segnala

‘replace ()’ è una funzione XSLT sconosciuta.

Il bit del codice stesso è:

      

C’è qualcosa che sto facendo di sbagliato?

Grazie 🙂

Edit: sto usando questa versione di XSLT, ma sembra che sia la versione di Visual Studio che è un problema … Dovrò cercare di trovare una soluzione alternativa.

  

La funzione di replace è disponibile solo in XSLT versione 2.0, non nella versione 1.0, che è ciò che utilizza Visual Studio . Solo perché hai specificato version="2.0" non significa che Visual Studio lo supporti.

Ecco un modello su codesling che implementa la sostituzione delle stringhe in XSLT 1.0 . Dovresti essere in grado di usarlo ma non posso garantire per la sua efficienza.

(Tratto dal link sopra)

                    

Lo chiameresti in questo modo:

           

Sostituisci non valido in XSLT 1.0. Hai “translate ()”, che potrebbe funzionare per te, ma replace () è XSLT 2 e non fa parte della base di codice XML di MS .NET. Puoi ottenerlo con alcune librerie XML di terze parti.

Per una semplice sostituzione delle stringhe, la funzione translate (disponibile in xslt 1.0) ha funzionato bene per me.

L’ho usato per rimuovere spazi per valori numerici.

Che ne dici di incorporare lo script # per fare la sostituzione?

Aggiungi il seguente alla fine del tuo foglio di stile:

Aggiungi un attributo namespace all’elemento stylesheet:

xmlns:scr="urn:scr.this"

Quindi attuare come ….

  

dovresti aver inserito la Feature = string tra virgolette come segue

         Thanks 

Per quanto ne so, replace() stato introdotto in XLST 2.0. Qual è la definizione della versione del tuo documento? Forse devi impostare VS 2008 per utilizzare XLST 2.0 (se ansible).