Es ist wahrscheinlich besser, wenn der Browser die Transformation mit der von Xenan definierten Methode durchführen kann. Es ist jedoch durchaus möglich, dies auch in JavaScript zu tun. Im Folgenden finden Sie einen Überblick darüber, wie Sie dies browserübergreifend erreichen können.
Zunächst müssen Sie XML und XSL laden. Es gibt viele Möglichkeiten, dies zu tun. Normalerweise wird es eine Art von AJAX beinhalten, aber nicht unbedingt. Um diese Antwort einfach zu halten, nehme ich an, Sie haben diesen Teil abgedeckt, aber bitte lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen, und ich werde bearbeiten, um ein Beispiel für das Laden von XML aufzunehmen.
Nehmen wir also an, wir haben diese Objekte: %Vor% Wo xml
eine XML-Struktur enthält und xsl
enthält das Stylesheet, mit dem Sie transformieren möchten.
Bearbeiten:
Wenn Sie diese Objekte laden müssen, verwenden Sie am Ende eine Form von AJAX. Es gibt viele Beispiele für browserübergreifendes AJAX. Sie werden besser eine Bibliothek verwenden, um dies zu erreichen, anstatt Ihre eigene Lösung zu rollen. Ich schlage vor, du betrachtest jQuery oder YUI, die beide hervorragende Arbeit leisten.
Die Grundidee ist jedoch ziemlich einfach. Um diese Antwort zu vervollständigen, hier ein bibliotheksspezifischer Code, der dies browserübergreifend ermöglicht:
%Vor%Sie würden diesen Code verwenden, indem Sie ihm einen Pfad zu Ihrem XML geben und eine Funktion, die ausgeführt wird, wenn der Ladevorgang abgeschlossen ist:
%Vor%Ich habe mein Beispiel aktualisiert, um diese Technik zu zeigen. Sie können einen funktionierenden Demo-Code hier finden.
Um eine Transformation durchzuführen, erhalten Sie ein drittes XML-Dokument, das das Ergebnis dieser Transformation ist. Wenn Sie mit IE arbeiten, verwenden Sie die " transformNodeToObject " -Methode, und wenn Sie arbeiten Bei anderen Browsern verwenden Sie die Methode " transformToDocument ":
%Vor% An dieser Stelle sollte result
die resultierende Umwandlung enthalten. Dies ist immer noch ein XML-Dokument, und Sie sollten es als solches behandeln. Wenn Sie eine Zeichenfolge möchten, die Sie in document.write
oder innerHTML
übergeben können, müssen Sie etwas mehr tun.
Auch hier gibt es eine IE-Methode und eine Methode, die für andere Browser gilt.
%Vor% Jetzt sollte s
das resultierende XML als String enthalten. Sie sollten in der Lage sein, dies in document.write oder innerHTML zu übergeben und etwas Nützliches zu tun. Beachten Sie, dass es möglicherweise eine XML-Deklaration enthält, die Sie entfernen möchten oder nicht.
Ich habe das in Chrome, IE9 und FF4 getestet. Sie finden ein vereinfachtes, barfußes, funktionierendes Beispiel in meinem Testbed .
Viel Glück und glückliche Programmierung!
Tags und Links javascript internet-explorer xml browser xslt