xml dom, placera ny nod på specifik plats

Permalänk
Medlem

xml dom, placera ny nod på specifik plats

Har en xml-fil som jag modifierat med dom, bl.a. tagit bort en nod, ändrat värdet på en nod och lagt till en ny nod (utgivningsar). Den nytillagda noden hamnar sist i xml-filen, men jag skulle vilja placera den på en specifik plats. Mellan två existerande noder. Hur gör jag det? Har inte hittat någon bra beskrivning som passar in på mitt problem.

Min script-fil ser ut såhär:

<script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); root = xmlDoc.documentElement var nyttElement = xmlDoc.createElement("utgivningsar") var nyText = xmlDoc.createTextNode("2002") root.appendChild(nyttElement) nyttElement.appendChild(nyText) y=xmlDoc.getElementsByTagName("sidor")[0]; xmlDoc.documentElement.removeChild(y); x=xmlDoc.getElementsByTagName("pris")[0].childNodes[0]; x.nodeValue="420"; document.write("Rotelement: <br />"); document.write("Nodnamn: " + xmlDoc.documentElement.nodeName + "<br />"); document.write("Nodtyp: " + xmlDoc.documentElement.nodeType + "<br />"); document.write("<p></p>"); x=xmlDoc.getElementsByTagName("bok")[0].childNodes; y=xmlDoc.getElementsByTagName("bok")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) { document.write("Nodnamn: <strong>" + y.nodeName + "</strong><br />"); document.write("Nodinnehåll: <i>" + y.textContent + "</i><br />"); document.write("Nodtyp: " + y.nodeType + "<br />"); document.write("Föräldernod: " + y.parentNode.nodeName + "<p>"); } y=y.nextSibling; } </script>

Permalänk
Medlem
Permalänk
Medlem

Jag har testat enligt exemplet i länken och nu får jag innehållet i den nya noden att visas högst upp i dokumentet, däremot visas inte nodens namn. Hur kan jag göra för att även visa nodnamn och placera den nya noden mellan exempelvis de två första noderna?

<div> <span id="childSpan"></span> </div> <script type="text/javascript"> xmlDoc=loadXMLDoc("uppgift3.xml"); root = xmlDoc.documentElement var nyttElement = xmlDoc.createElement("utgivningsar") nyttElement.setAttribute("id", "newSpan"); var nyText = xmlDoc.createTextNode("2002") nyttElement.appendChild(nyText) var sp2 = document.getElementById("childSpan"); var parentDiv = sp2.parentNode; parentDiv.insertBefore(nyttElement, sp2); y=xmlDoc.getElementsByTagName("sidor")[0]; xmlDoc.documentElement.removeChild(y); x=xmlDoc.getElementsByTagName("pris")[0].childNodes[0]; x.nodeValue="420"; document.write("Rotelement: <br />"); document.write("Nodnamn: " + xmlDoc.documentElement.nodeName + "<br />"); document.write("Nodtyp: " + xmlDoc.documentElement.nodeType + "<br />"); document.write("<p></p>"); x=xmlDoc.getElementsByTagName("bok")[0].childNodes; y=xmlDoc.getElementsByTagName("bok")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) { document.write("Nodnamn: <strong>" + y.nodeName + "</strong><br />"); document.write("Nodinnehåll: <i>" + y.textContent + "</i><br />"); document.write("Nodtyp: " + y.nodeType + "<br />"); document.write("Föräldernod: " + y.parentNode.nodeName + "<p>"); } y=y.nextSibling; } </script>