Sto tentando di inserire un nodo commento prima del nodo particolare (<name>
) nel mio xml. Ecco il metodo per esso:Impossibile eseguire 'insertBefore' su 'Node': il nodo prima del quale il nuovo nodo deve essere inserito non è figlio di questo nodo
function test(xmlResponse)
{
var parser = new DOMParser(), xmlDoc = parser.parseFromString(xmlResponse,"text/xml");
var comentDocument = document.createComment("My personal comments");
console.log(xmlDoc.querySelectorAll("street name")[0])
xmlDoc.insertBefore(comentDocument , xmlDoc.querySelectorAll("street name")[0]);
return xmlDoc
}
e quando io chiamo:
test("<address><street><name>Street name</name></street></address>")
ottengo:
<name>Street name</name>
Uncaught DOMException: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
at Error (native)
at generateTheComment (<anonymous>:12:9)
at <anonymous>:2:1
at Object.InjectedScript._evaluateOn (<anonymous>:895:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
at Object.InjectedScript.evaluate (<anonymous>:694:21)
Come si può vedere la <name>Street name</name>
sta ottenendo stampato correttamente; come voglio aggiungere il comentDocument
al suo genitore <street>
.
Non so dove sto sbagliando qui.
mi aspetto il codice per tornare indietro:
<address>
<street>
<!-- My personal comments -->
<name>Street name
</name>
</street>
</address>
Beh, sembra che non si desidera inserire che commentare nel 'xmlDoc', ma in quel '' nodo. –
Bergi
correlati: http://stackoverflow.com/questions/3352871/using-javascript-insertbefore-to-insert-before-a-textnode –