Jeg vil lige spørge eksperterne herinde om det kan lade sig gøre at ændre navnet på en node i et domdocument? Jeg har fundet ud af at functionerne set_name og set_namespace eksisterer men da der ikke findes en dyb beskrivelse af domdocumentet men kun en api ved jeg ikke hvordan de skal bruges?? Jeg får hele tiden af vide at den ikke kan finde funktionen i Domdocument->Element men hvad dælen er forskellen på domNode og domElement?? Her er lidt kode. Min clonede node skal helst have et andet navn af vigtige årsager som jeg ikke gider at beskrive her ...
Du kan ikke ændre tag- eller nodeName på et XML-element. Det ville svare lidt til at ændre et img-element til et div-element i HTML ... og det kan man selvfølgelig ikke :)
Sådan ville man gøre i en IE (så kan du selv nok 'oversætte'):
<script type="text/JavaScript"> function foo() { var newNode, txtNode, oldNode, sXml, xmlDoc; xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); sXml = "<data><item id='enID'>En tekst</item></data>"; xmlDoc.loadXML(sXml);
// Find den ønskede node, der skal skiftes: oldNode = xmlDoc.documentElement.firstChild; // Opret ny node med det ønskede nodeName: newNode = xmlDoc.createElement("bla"); // Klon og indsæt den gamle nodes tekstnode i den nye: newNode.appendChild( oldNode.firstChild.cloneNode(true) ); // Sæt den gamle nodes attributter på den nye: for (var i=0; i<oldNode.attributes.length; i++) { newNode.setAttribute(oldNode.attributes[i].name, oldNode.attributes[i].value) } // Indsæt den nye node, før den gamle xmlDoc.documentElement.insertBefore(newNode, oldNode); // Fjern den gamle node xmlDoc.documentElement.removeChild(oldNode); alert(xmlDoc.xml) } </script>
<button onclick="foo()">TEST</button>
/mvh </bole>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.