Hallo!
Freundlich von dir dass du versuchst zu helfen aber es stimmt nicht ganz was du sagst.
darf ich noch hinzufügen, dass $(xml)... nicht zulässig ist? Die JQuery-Doku spezifiziert ausdrücklich, dass dort html erwartet wird, kein XML.
jQuery kann mit einem XML DOM durchaus umgehen
Für deinen Anwendungszweck musst Du zunächst den String in ein XML-Dokument übersetzen, darauf kannst Du dann jQuery anwenden.
Wieso das denn? Der Browser parst die Response automatisch von XML -> DOM wenn der MIMETYPE stimmt. Der jQuery Ajax Callback bekommt bereits ein 'XMLDocument' hinein.
[http://api.jquery.com/jQuery.ajax/]
$.get("http://localhost/datei.kml", function(data){
let xmlDoc = $.parseXML(data);
'data' ist schon ein XMLDocument! Da muss man nicht parseXML aufrufen.
Übrigens ist jQuery hier kein Muss
jQuery ist nirgendwo Muss. Was nicht heisst dass es nicht hilfreich ist.
- Ajax-Requeste kann man auch mit fetch machen
Man kann den Teufel auch mit dem Bellzebub austreiben.
Wenn man schon auf jQuery verzichten will dann kann kann man XMLHttpRequest nutzen:
var xhr = new XMLHttpRequest();
xhr.onload = function(){
console.log(xhr.responseXML);
};
xhr.open('GET', 'xyz.xml');
xhr.send();
und das Parsen des XML-Dokumentes gelingt mit DOM-Funktionen wie querySelector
Ähhhh moment mal. Fetch bietet keine Methode um auf das XML DOM zuzugreifen. Man muss erst mal response.text() aufrufen. Dann manuell mit DOMParser parsen. DANN kann man querySelector verwenden. (Aus dem Grund kann jQuery auch damit arbeiten.)
fetch('test.xml')
.then((response) => response.text())
.then((text) => {
var doc = new DOMParser().parseFromString(text, 'application/xml');
console.log(doc);
});
Aber wieso sollte man das tun wenn es mit XHR einfacher geht und jeder Browser es versteht.
Oder einfach bei jQuery bleiben wenn man sich damit auskennt.
Lukas M.