Konvertieren von xml-Dokument zurück zu string mit jQuery
Ich versuche zu Parsen einer xml-formatierten string, entfernen Sie eines Ihrer Elemente, und schreiben Sie es zurück in einen string. Alle mit standard-jQuery-Funktionen. Es ist der Letzte Schritt, dass ich kann nicht scheinen, um herauszufinden.
var $xml = $(somexmlstring);
var element = $xml.find('name:contains("'+somevalue+'")');
element.remove();
var newxmlstring = $xml.dunno();
Welche Funktion kann ich verwenden, um zu konvertieren $xml-DOM wieder in einen string?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu helfen, Sie reparieren Ihren code in jsfiddle:
Der fix ist in der letzten Zeile: `$xml.find('root').html()
innerHTML
keinen.replace()
Eigenschaft...html()
Funktion erwartet nur HTML... Wenn ich dies versuchte, hatte ich Probleme mit einem echten XML-Dokument (nicht nur HTML.) Möglicherweise, weil eines der tags war, benannt<title>
und es wurde nicht in einem tag namens<head>
.Können Sie
.html()
wenn Sie wickeln das jQuery-Objekt, das mit einem übergeordneten element zuerst, und dann rufen Sie.html()
auf das übergeordnete element.Dies funktioniert auch, wenn die ursprüngliche XML-string nicht ein einziges root-element. Es funktioniert aber nicht, wenn die ursprüngliche XML-Zeichenfolge enthält eine XML-Deklaration (wie
<?xml version="1.0" encoding="UTF-8"?>
).jsfiddle
Wenn die ursprüngliche XML-string ein gültiges XML-Dokument, Optional mit einer XML-Deklaration am Anfang, möchten Sie möglicherweise erstellen Sie die jQuery-Objekt wie folgt:
jsfiddle
.wrap()
. Es umschließt alle top-level-Knoten. Der fix ist die Verwendung.append()
statt. Sie sind auch richtig über$.parseXML()
dass die XML-Zeichenfolge als ein einzelnes root-element.Solange Ihr XML-Dokument nicht enthalten einige extra fancy namespaces, dann ist es einfach:
Brauchen Sie nicht, jquery, um diese verwenden XMLSerializer