2013-07-23 11 views
5

Ho bisogno di creare un XML usando JavaScript. Una delle cose più difficili è che ho bisogno di popolare il contenuto del testo di un nodo con un nome qualificato XML. Cioè, un nome locale e un prefisso, come myns: myelement.Come creare un nodo dello spazio dei nomi XML in JavaScript?

La difficoltà è che il documento XML non contiene altri elementi o attributi per lo spazio dei nomi a cui deve essere associato il prefisso. Quindi ho bisogno di aggiungere un nodo namespace (xmlns) all'elemento che racchiude, per definire un prefisso. Per esempio: -

<myElement xmlns:myprefix="http://something">myprefix:foo</myElement> 

non riesco a vedere un bel modo per aggiungere il nodo xmlns spazio dei nomi in JavaScript. Attualmente, ho il seguente trucco terribile: -

 // Hacky way to get a namespace prefix definition. TODO: can we do something nicer? 
     var prefix = "ixe"; 
     requestElement.setAttributeNS(inputTypes[0].namespaceURL, prefix + ":" + "def", ""); 
     inputElement.textContent = prefix + ":" + inputTypes[0].localName; 

Sto creando un attributo altrimenti-non necessario con lo spazio dei nomi desiderato e un prefisso arbitrario. Ciò fa sì che il documento generato abbia un nodo dello spazio dei nomi xmlns per definire il prefisso per lo spazio dei nomi.

L'ultimo FireFox e Chrome, ma non su IE, uno può fare inputElement.setAttribute("xmlns:" + PREFIX, inputType.namespaceUri);. Ma voglio una soluzione neutra per il browser.

Ma preferirei non creare questo attributo fittizio. Sicuramente, deve essere possibile creare il nodo dello spazio dei nomi in modo esplicito. Cosa mi sono perso?

+2

Salve, potrebbe essere in grado di guardare a questo http://stackoverflow.com/questions/9160418/xml-node-add-an-attribute-with-a-namespace –

risposta

Problemi correlati