2009-08-16 7 views
2

Mit JQuery Ich sende ein Ajax GET zu einem Webserver. Der Webserver antwortet mit einem XML-Block wie diesem;JQuery XML/XHTML Verarbeitung

 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<ajax-response> 
    <response> 
    some response here 
    </response> 
    <response> 
    some response here 
    </response> 
</ajax-response> 

Die jQuery bekommen sieht so aus;

 
jQuery.get(name,parms,function(data){xmlProcess(data);}); 

Die xmlProcess-Funktion wie folgt;

 
function xmlProcess(data){ 
    jQuery('response',data).each(function(i){ 
     t = ?what?; 
    }); 
} 

Mein Problem ist, dass der Stoff, aus dem Server gesendet wird zurück in der „gewissen Antwort hier“ Teil ist xhtml. So kann ich es als XML Zeug mit Zugang wie

 
t = jQuery(this).find("div").attr("id"); 

Aber was ich wirklich will, ist der „einig Antwort hier“ Teil als Text, also als String zurück. So kann die Zeichenfolge beispielsweise enthalten;

 
<div id"bob">hello</div> 
+0

@Bruce - hat eine der Antworten hier Ihr Problem gelöst? – karim79

Antwort

0

Wenn Sie es als Text möchten, dann schreiben Sie die XML, so dass es Text ist.

d.h. verwenden Sie &lt; für < und so weiter.

+0

Ja, das ist eine Möglichkeit. In einigen Fällen habe ich keine Kontrolle über den Server, daher bin ich immer noch an einer clientseitigen Antwort interessiert. Wenn ich jedoch keinen Erfolg habe, ist die Codierung des Textes auf der Serverseite möglich. Vielen Dank. –

0

Wenn ich die Frage richtig bin zu verstehen, können Sie die Antwort Objekt in eine Zeichenfolge wie folgt konvertieren:

jQuery.get(name,parms,function(data){ 
    //for IE 
    if (window.ActiveXObject) { 
     var string = data.xml; 
     alert(string); 
    } 
    // code for Mozilla, Firefox, Opera, etc. 
    else { 
     var string = (new XMLSerializer()).serializeToString(data); 
     alert(string); 
    } 
}); 
+0

Dies ist in der Nähe, ich möchte jedes Antwortelement separat serialisieren, und das Obige serialisiert die ganze Antwort. Aber ich forsche mehr in dieser Richtung. –

+0

@Bruce - also verwenden Sie die oben genannten, um jeden Knoten zu serialisieren - ich werde die Antwort bearbeiten. – karim79

+0

@ Karim79, habe ich das zuerst ausprobiert. wie in var string = (neuer XMLSerializer()). serializeToString (i); aber es spuckt einen Fehler, weil ich zB ein Element-Objekt, kein XML-Objekt. –

0

Jedes Element sollte eine „innerhtml“ Eigenschaft. Wenn das nicht funktioniert, versuchen Sie die Methode toString() für das Element.

0

Dies kann tatsächlich sehr einfach durchgeführt werden, die .text() -Methode von jquery ruft alles zwischen dem ausgewählten Tag als Zeichenkette, das, was Sie zu sein scheint wollen: t = $(this).text(); alert(t); Sie nicht zu verwirren haben sollten, um zu ersetzenmit & lt etc ..

Viel Spaß, viel Glück, lassen Sie mich wissen, wenn Sie gute Ergebnisse erhalten!

Verwandte Themen