Facile modo per eliminare spazi di nomi XML con JavaScript?

C'è un modo semplice, per esempio, per abbandonare uno spazio di nome XML, ma mantenere il tag come è con jQuery o JavaScript? Per esempio:

<html:a href="#an-example" title="Go to the example">Just an Example</html:a> 

E cambiarlo in:

 <a href="#an-example" title="Go to the example">Just an Example</a> 

In volo con jQuery o JavaScript e non conoscere gli elementi e gli attributi all'interno?

Se non c'è un tag <script> nel codice da sostituire puoi provare ( demo ) :

 container.innerHTML = container.innerHTML .replace(/<(\/?)([^:>\s]*:)?([^>]+)>/g, "<$1$3>") 

Questa non è veramente una risposta, ma sarebbe meglio gestire questo lato server. JavaScript viene nell'image un po 'troppo tardi per questo tipo di attività … eventuali events potrebbero essere già stati collegati ai nodes esistenti e si dovrebbero elaborare due elementi each elemento.

Qual è lo scopo dello spazio dei nomi?

Se questi sono file html statici e lo spazio dei nomi non serve a scopo, eliminerei tutti gli spazi dei nomi con una regex.

Se non sono statici e lo spazio dei nomi ha uno scopo quando viene utilizzato come xml, è ansible eseguire un rilevamento sul lato server per essere utilizzato con il doctype giusto e lo spazio dei nomi (quando appropriato).

È facile quando sai come … usa solo \\ per sfuggire al colon, quindi non viene analizzato come un delimitatore d'azione dal motore di parsing jquery.

 $('html\\:a').each( function(){ var temp = $(this).html(); $(this).replaceWith("<a>"+temp+"</a>"); }); 

Ciò dovrebbe ripetere tra ciascuno di questi elementi e sostituirli con tag normali. Poiché questi sono serviti a una function di richiamata ajax, altrimenti non capisco perché volete farlo in volo … quindi la linea principale cambierebbe:

 $.post('...',{}, function(dat){ $(dat).find('html\\:a').each( blah blah .... . . }); 

NB, io sono una di quelle terribili persone che veramente provano le cose in FF …