2016-09-19 1 views
0

Ich mache einen kleinen XML-Anreicherer basierend auf JS, der bei einer XML-Datei einige Daten in der Struktur berechnet und auf einem <pre></pre>-Tag (mit Hervorhebung versehen) druckt. js) der Inhalt meiner modifizierten Datei.Ein roher XML-Code aus einem jQuery/XML-Objekt erhalten

Da ich jQuery für Berechnungen verwende, erhalte ich am Ende des Prozesses ein jQuery-Objekt.

Vorerst mein Code ist nur: $("#output").append(xmlComputed)

Aber offensichtlich im Browser, ich erhalte eine analysierte Form meiner XML-Inhalte, ohne Tags.

Also ich würde gerne wissen, welche Art von Methode kann ich verwenden, um den vollständigen XML-Knoten in Zeichenfolge von einem jQuery-Knoten, wie mit .html() Ich nehme an?

Und so kann ich dann die Sonderzeichen entkommen und das Ergebnis ausdrucken.

Vielen Dank im Voraus!

[Bearbeiten] Ich habe immer versucht, dies: Convert xml to string with jQuery Aber ich erhalte nur der Anfang meines XML-Dokuments, zB <!--xml version=1.0-->

Antwort

0
$("button").click(function(){ 
    $("pre").load("test.xml", function(responseTxt, statusTxt, xhr){ 
     if(statusTxt == "success") 
      alert("External content loaded successfully!"); 
     if(statusTxt == "error") 
      alert("Error: " + xhr.status + ": " + xhr.statusText); 
    }); 
}); 

Wie die u Ihre XML-Datei mit Jquery bekommen. Hier können Sie die gesamte XML im Format String abrufen. Dann können Sie mit Ihrem eigenen Stil spielen

+0

Vielen Dank für Ihre Antwort, aber leider kommt das Problem von der letzten Phase, also von einem jQuery-Objekt zu einem String, die Datei ist bereits geladen. – DGallet

0
You can use dataType: 'xml' within your ajax.
+0

Es gibt nichts über Ajax in meinem Skript, aber vielleicht, wenn Sie eine Idee haben, wie man das Problem in etwas ähnlich klingen lässt, könnte ich die Situation lösen ... – DGallet

+0

Bitte bearbeiten Sie mit mehr Informationen. Code-only und "try this" Antworten werden abgeraten, da sie keine durchsuchbaren Inhalte enthalten und nicht erklären, warum jemand "das versuchen sollte". – abarisone

0

Endlich habe ich es schaffe etwas nach und nach finden ...

Also am Anfang hatte ich ein jQuery-Objekt nämlich xmlComputed.

Ich habe in Javascript Knoten Verwendung .get() Funktion, ohne Parameter umgewandelt, die eineArray von Knoten zurückgibt.

Der erste Eintrag des Arrays war XML-Anfangs-Tag <!--xml version=1.0-->, dann war der zweite ein Textinhalt, und mein Hauptknoten war der dritte (Index 2) (die tatsächlich das Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1 is not of type 'Node'. Problem löst).

die XMLSerializer Verwendung, wie auf viele Beiträge erwähnt, erhalte ich eine Zeichenfolge in xmlString

var oSerializer = new XMLSerializer(); 
var xmlString = oSerializer.serializeToString(gpxContent.get()[2]); 

Dann für zu entkommen, nur how to escape xml entities in javascript? nämlich eine andere Antwort folgende

if (!String.prototype.encodeHTML) { 
    String.prototype.encodeHTML = function() { 
    return this.replace(/&/g, '&amp;') 
       .replace(/</g, '&lt;') 
       .replace(/>/g, '&gt;') 
       .replace(/"/g, '&quot;') 
       .replace(/'/g, '&apos;'); 
    }; 
} 

Und durch tun xmlString.encodeHTML(), erhalte ich einen quasi verschönerten Text.

Ich hoffe, es könnte für jemanden nützlich sein!

Verwandte Themen