Avatar billede kla Nybegynder
25. september 2001 - 09:34 Der er 9 kommentarer og
1 løsning

RemoveNode problem

Jeg har det problem, mhs til XML i javascript at jeg ikke ved hvordan jeg kan få fat i den rette node og så slette den !

<-- Her er min kildekode -->

<jsp:useBean id=\"q\" class=\"dk.infotrio.mobitrack.beans.Vogn\" scope=\"page\"/>
<%@ page import=\"java.sql.*\" %>
<!DOCTYPE HTML PUBLIC =-//W3C//DTD HTML 4.0 Transitional//EN\">
<HTML>
<HEAD>
<LINK href=\"../css/mobitrack.css\" type=text/css rel=StyleSheet>
<TITLE>::: InfoTrio - MobiTrack :::</TITLE>
<SCRIPT src=\"../js/functions.js\"></SCRIPT>

<XML id=\"oPakkeXML\" src=\"../xml/pakker.xml\"></XML>
<XML id=\"oPakkeXSL\" src=\"../xml/pakker.xsl\"></XML>

<script for=\"window\" event=\"onLoad\">
<!--
pakkeliste.innerHTML = oPakkeXML.transformNode(oPakkeXSL.XMLDocument);
-->
</script>
<script>
<!--
var bil = 0;

function tilfojPakke() {
  var oNyPakkeLinie, oNytElement;
 
  if (bil == 0) {
    alert(\"Vælg først bil!\");
  }
  else {
  oNyPakkeLinie = oPakkeXML.createNode(1,\"pakke\",\"\");
 
  /*
 
  oNytElement = oPakkeXML.createNode(1,\"vognid\",\"\");
  oNytElement.text = getBil();
  oNyPakkeLinie.appendChild(oNytElement);

  oNytElement = oPakkeXML.createNode(1,\"pakkeid\",\"\");
  oNytElement.text = pakke.paknum.value;
  oNyPakkeLinie.appendChild(oNytElement);
 
  */
 
  oNyPakkeLinie.setAttribute(\"vognId\", getBil());
  oNyPakkeLinie.setAttribute(\"pakkeId\", pakke.paknum.value);
   
    pakke.paknum.value = \"\";
    pakke.paknum.focus();

  oMlm = oPakkeXML.selectSingleNode(\"\\pakker\");
  oMlm.appendChild(oNyPakkeLinie); 
 
  pakkeliste.innerHTML = oPakkeXML.transformNode(oPakkeXSL.XMLDocument);
  }
}

function removeItem(nr) {

  var strXpath = \"//pakke[@pakkeId=\'\" + nr + \"\']\";
 
  oSletNode = oPakkeXML.selectSingleNode(strXpath);
 
  oPakkeXML.removeChild(oSletNode);

pakkeliste.innerHTML = oPakkeXML.transformNode(oPakkeXSL.XMLDocument);

}

function gemOrdre() {
 
  alert(oPakkeXML.xml);
 
// document.formPakke.xmlstreng.value = oPakkeXML.xml;
// document.formPakke.submit();
 
}

function setBil(nr) {
    this.bil = nr;
    //tekst.innerText = \"Du har valgt bil : \" + getBil();
}

function getBil() {
return bil;
}

-->
</script>

</head>

<BODY bgcolor=\"#516d93\" TOPMARGIN=\"0\">
<form name=\"formPakke\" action=\"../servlet/updaterpakker\" method=\"post\">
<input type=\"hidden\" name=\"xmlstreng\">
</form>

<h1><center>Tilføj pakker til vogn</center></h1>
<table border=\"0\" width=\"100%\" cellspacing=\"2\" cellpadding=\"15\">
<tr><td width=33% style=\"border-style: solid; border-width : 1px;\"><div id=\"witchCar\">
<p>Vælg hvilken bil som du vil indtaste pakker til !</p>
  <%
  try {
    ResultSet rs = q.visVogne();

    while (rs.next())
      out.println(\"<input type=radio class=none name=car onChange=\\\"setBil(\" + rs.getInt(\"vognnr\") + \");\\\">&nbsp;&nbsp;&nbsp;&nbsp;\" + rs.getInt(\"vognnr\")+ \"<br>\");
  }
  catch (Exception e) {}
%> 

</div>
</td>
<td width=33% style=\"border-style: solid; border-width : 1px;\">
<div>
<form name=\"pakke\">
<input type=\"text\" size=\"20\" name=\"paknum\">
<input type=\"button\" value=\"addpak\" onClick=\"tilfojPakke();\">
</form>
</div>
</td>
<td width=33% style=\"border-style: solid; border-width : 1px;\">
<div id=pakkeliste>&nbsp;<input type=\"button\" value=\"showPak\" onClick=\"gemOrdre();\"></div>

</td>
</tr>
</table>
<div align=center><input type=\"button\" value=\"showPak\" onClick=\"gemOrdre();\"></div>

</BODY>
</HTML>

< - håber det kan være til hjælp - >

mvh KLA@
Avatar billede kla Nybegynder
25. september 2001 - 09:35 #1
Lige et eksempel på hvordan xml doc. tager sig ud !

<?xml version=\"1.0\"?>
<pakker>
<pakke vognId=\'200\' pakkeId=\'22\' />
</pakker>
Avatar billede disky Nybegynder
25. september 2001 - 09:36 #2
du skriver javascript men det ligner java kode.

prøv evt. at poste en 0 point\'s link fra java gruppen. Der er måske nogle der kan hjælpe
Avatar billede kla Nybegynder
25. september 2001 - 09:41 #3
hej disky

det er ikke min java/java script kode der er noget galt med men jeg tror det ligger i min xpath hvor jeg udvælger min node ...

var strXpath = \"//pakke[@pakkeId=\'\" + nr + \"\']\";
 
  oSletNode = oPakkeXML.selectSingleNode(strXpath);
 
  oPakkeXML.removeChild(oSletNode);

Avatar billede disky Nybegynder
25. september 2001 - 09:44 #4
okay, jeg melder pas. Så meget har jeg ikke rodet med xml endnu
Avatar billede getalife Nybegynder
25. september 2001 - 15:56 #5
Uhm.. det er nok bare en typo, men har du ikke glemt et \"r\"
\"//pakkeR[@pakkeId=\'\" + nr + \"\']\";
Avatar billede getalife Nybegynder
25. september 2001 - 15:57 #6
Duh.. nevermind..
Avatar billede moa Nybegynder
11. oktober 2001 - 18:55 #7
Hejsa kla

Nu har jeg ikke nærlæst din html/js kode, men blot din sidste kommentar om hvor du selv mener fejlen er, så derudfra

Prøv at alert\'e oSletNode efter du har fået fingre i den, for at se om det er den rigtige knude. - For det tror jeg nemlig fungerer godtnok.

Men tilgengæld er din oSletNode ikke et direkte child til oPakkeXML (hvis jeg har skimlæst din kode rigtigt), så derfor er det nok din oPakkeXML.removeChild(oSletNode), der går galt!

Prøv istedet
oSletNode.parent().removeChild(oSletNode);

(det er ikke sikkert syntaksen er hundrede procent rigtigt ;-))

mvh. moa
Avatar billede kla Nybegynder
13. oktober 2001 - 08:33 #8
moa > min oSletNode indeholder rigtig nok hva\' jeg gerne vil have slettet, og jeg har prøvet det du skrev, men det virker ikke helt, så jeg har selv prøvet at finde ud af noget angående parent() men det endnu ikke lykkes mig at få fat i parent\'en til min oSletNode, kan det være fordi det er min rodnode ?
Avatar billede moa Nybegynder
13. oktober 2001 - 11:54 #9
Hej kla

Det var mig der huskede forkert, w3c-standarden for en node er her: http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247

ifølge denne har en node ingen parent()-metode, men derimod en parentNode attribut.

Så prøv:
oSletNode.parentNode.removeChild(oSletNode);

Evt. hvis dette ikke virker, prøv om parentNode evt. så er implementeret som en metode istedetfor en attribut.
Håber det hjælper dig videre.
/moa
Avatar billede kla Nybegynder
13. oktober 2001 - 16:01 #10
Det var lige det der skulle til ;-)
/kla@
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester