Avatar billede mik28 Seniormester
25. november 2010 - 10:25 Der er 25 kommentarer og
1 løsning

JQuiry læs xml

Hej Eksperter

Jeg forsøger at læse en xmlfil med JQuiry. Har forsøgt dette. Hvad gør jeg forkert

<all>
<node1>test</node1>
</all>


<script>
$(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "minurl",
        dataType: "xml",
        success: function(xml) {
            $(xml).find('all').each(function(){
                var node1 = $(this).attr('node1').text();
               
                $(node1);
               
            });
        }
    });
});
</script>

har eksemplet herfra

http://think2loud.com/reading-xml-with-jquery/
Avatar billede mik28 Seniormester
25. november 2010 - 10:56 #1
Jeg får xml fint tilbage men jeg kan ikke få fat i noden
Avatar billede mik28 Seniormester
25. november 2010 - 11:16 #2
har også prøvet med

$(xml).find('all').each(function(){                                                               
var node1 = $(this).find('node1').text();
$(node1);
});

men det virker ikke. Jeg kan se med Charles at jeg fint får xml'en tilbage
Avatar billede bkp Nybegynder
25. november 2010 - 11:44 #3
Jeg vil helt klart anbefale at arbejde med JSON da det er designet til Javascript og er meget nemmere at arbejde med når du er i script miljø.

Desuden fylder JSON strengen for det meste mindre end XML og når du trækker den ind i dit script så opfattes det som et objekt på lignende måde som det objekt det er konverteret fra.

Hvis det ikke er muligt at levere XML'en som JSON, så findes der faktisk plugin der kan konvertere XML til JSON:
http://plugins.jquery.com/project/xml2json

Demo:
http://www.fyneworks.com/jquery/xml-to-json/
Avatar billede mik28 Seniormester
25. november 2010 - 12:06 #4
Tak for input men p.t vil jeg gerne forsætte med denne løsning. Har prøvet at sætte et par alerts ind. Det viser sig at jeg aldrig får test1

<script type="text/javascript">
$(document).ready(function(){
alert("test0");

$.ajax({
    type: "GET",
    url: "minurl",
    dataType: "xml",
    success: function(xml) {

alert("test1");

    $(xml).find('all').each(function(){
    var node1 = $(this).find('node1').text();
    $(node1);
    });
  }
});
});
</script>
Avatar billede mik28 Seniormester
25. november 2010 - 12:09 #5
det jeg får tilbage er

text/xml;charset=UTF-8
Avatar billede bkp Nybegynder
25. november 2010 - 12:48 #6
Din sidste linie "$(node1);" hvad skal den ;-)

Prøv ellers jQuery Get functionen:
$.get('minurl', function(xml) {
  $(xml).find('all').each(function(){
  var node1 = $(this).find('node1').text();
  alert(node1);
});


http://api.jquery.com/jQuery.get/
Avatar billede bkp Nybegynder
25. november 2010 - 12:53 #7
Æh glemte lige den sidste });
$.get('minurl', function(xml) {
  $(xml).find('all').each(function(){
      var node1 = $(this).find('node1').text();
      alert(node1);
  });
});
Avatar billede bkp Nybegynder
25. november 2010 - 12:55 #8
Kigge lige din oprindelige script igennem, du har en } for meget!

        $(node1);
      });
  }
  });
});

Skal værre:


        $(node1);
      });
  });
});
Avatar billede mik28 Seniormester
25. november 2010 - 13:29 #9
jeg kan simpelthen ikke få det til at virke. Fatter det ikke

<script type="text/javascript">
  alert("test");
  $.get('minurl', function(xml) {
  alert("test1");
  $(xml).find('all').each(function(){
  alert("test2");
  var node1 = $(this).find('node1').text();
  alert(node1);
  });
  });
  </script>

Kommer til test og test1 men ikke til test2
Avatar billede mik28 Seniormester
25. november 2010 - 13:37 #10
Hvis jeg sætter en alert(xml); efter alert("test1"); er den tom???????????????
Avatar billede mik28 Seniormester
25. november 2010 - 13:37 #11
men minurl giver det forventede tilbage
Avatar billede mik28 Seniormester
25. november 2010 - 13:39 #12
Respose
Content-Type    text/xml;charset=UTF-8
Avatar billede mik28 Seniormester
25. november 2010 - 13:41 #13
Faktisk har jeg allerede lavet det i JAVA og det virker fint, ville bare gerne se om jeg ikke kunne få det til at virke i JavaScript, men det er åbenbart svært :-(
Avatar billede mik28 Seniormester
25. november 2010 - 13:47 #14
alert(xml.length); giver 0
Avatar billede bkp Nybegynder
25. november 2010 - 14:04 #15
Bare en tanke, du har vel udskiftet "minurl" med et gyldigt link?
Avatar billede bkp Nybegynder
25. november 2010 - 14:04 #16
Hvad får du hvis du kalder linket direkte i din browser?

Prøv eventuelt at debugge i Firefox/Firebug
Avatar billede mik28 Seniormester
25. november 2010 - 14:39 #17
Til det første så ja :-)

Jeg har taget det som minurl henviser til (noget dynamisk sjov) og smidt det over i en fil. Nu kan jeg få fat i indholdet. Det vil sige jeg kan få det vist i en alert. Hvordan får jeg det ud på siden. Har prøvet med document.write(node1); og $(node1);
Avatar billede bkp Nybegynder
25. november 2010 - 14:45 #18
Brug jQuery ;-)

Hvis du har en div der ser således ud:
<div id="xmloutput"></div>

Kan du i dit script gøre følgende:
$('#xmloutput').html(node1);
Avatar billede bkp Nybegynder
25. november 2010 - 14:46 #19
Men "document.write(node1);" burde også virke.
Avatar billede bkp Nybegynder
25. november 2010 - 14:50 #20
Glem min sidste kommentar, din ajax funktion kører jo først efter xml er hentet, og jeg går ud fra at din side er færdig, så dit script vil skrive i bunden, og det er sikkert ikke din tanke, eller hvad?

Men brug mit script i #18 så er du sikker på at din tekst kommer hvor du forventer.
Avatar billede mik28 Seniormester
25. november 2010 - 15:23 #21
Cool. Nu mangler jeg så bare en ting. Hvordan får jeg decodet tegn som

&lt; så det bliver til <

har prøvet med
node1 = Encoder.htmlDecode(node1);
Avatar billede bkp Nybegynder
25. november 2010 - 16:02 #22
Avatar billede mik28 Seniormester
25. november 2010 - 16:02 #23
Det er det her jeg skal have decodet, så det bliver opfattet som html.

&lt;div&gt;LADIDA&lt;/div&gt;&lt;/div&gt;&lt;img alt="info" src="/bla/bla1/billede.png" style="border: 0pt none;" class="minklasse"&gt;
Avatar billede mik28 Seniormester
25. november 2010 - 16:14 #24
he he det virker næsten nu. Nu mangler jeg tilsyneladende bare at få et par "" lavet om til "
Avatar billede mik28 Seniormester
25. november 2010 - 16:45 #25
Nå men du skal have mange tak for hjælpen. Læg endelig et svar så jeg kan lukke
Avatar billede bkp Nybegynder
25. november 2010 - 17:42 #26
Var så lidt :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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