NEWS
XML Parser Error: undefined
-
hallo Freunde ich möchte eine XML-Datei in eine HTML Datei mittels Javascript kommands "übersetzten"
Folgendes: Ich loope durch die XML Datei und greife mir die relevanten Sachen mittels DOM raus.

Mein Problem: Meine if Überprüfung will einfach nicht funktionieren, ich bekomme immer diesen Error auf der Konsole:
Uncaught TypeError: x[i].getElementsByTagName(...)[0] is undefined
, da eben manchmal die ChildNote publication nicht in der XML-Datei aufzufinden ist.
Dieser Error blockiert leider das gesamt Skript ... also bin ich für jeden Tipp dankbar -
hallo Freunde ich möchte eine XML-Datei in eine HTML Datei mittels Javascript kommands "übersetzten"
Folgendes: Ich loope durch die XML Datei und greife mir die relevanten Sachen mittels DOM raus.

Mein Problem: Meine if Überprüfung will einfach nicht funktionieren, ich bekomme immer diesen Error auf der Konsole:
Uncaught TypeError: x[i].getElementsByTagName(...)[0] is undefined
, da eben manchmal die ChildNote publication nicht in der XML-Datei aufzufinden ist.
Dieser Error blockiert leider das gesamt Skript ... also bin ich für jeden Tipp dankbarDu musst dir das Element welches manchmal nicht da ist in eine temporäre Variable holen, und dann diese auf undefined prüfen.
Wichtig dabei ist: das undefined darf nicht wie bei dir in '' stehen, da es nicht der Text "undefined" ist, sondern ein Wert der dafür steht das eine Variable keinen Wert bekommen hat.
Nebenbei:
Das Posten von Code als Screenshot ist nicht sinnvoll. Besser den code kopieren und in code tags (</>) posten.
A.
-
Du musst dir das Element welches manchmal nicht da ist in eine temporäre Variable holen, und dann diese auf undefined prüfen.
Wichtig dabei ist: das undefined darf nicht wie bei dir in '' stehen, da es nicht der Text "undefined" ist, sondern ein Wert der dafür steht das eine Variable keinen Wert bekommen hat.
Nebenbei:
Das Posten von Code als Screenshot ist nicht sinnvoll. Besser den code kopieren und in code tags (</>) posten.
A.
Hallo,
danke für die schnelle Antwort, habe den Code folgendermaßen angepasst:var x = xmlDoc.getElementsByTagName("eprint");
var y = xmlDoc.getElementsByTagName("person_search");
var z = xmlDoc.getElementsByTagName("abstract_original");for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = ""; var temp = x[i].getElementsByTagName("publication")[0].childNodes[0].nodeValue; if (typeof temp !== undefined){ publikation = temp; } else{ publikation = "0"; }Der Error ist leider immer noch der selbe:
Uncaught TypeError: x[i].getElementsByTagName(...)[0] is undefined -
Hallo,
danke für die schnelle Antwort, habe den Code folgendermaßen angepasst:var x = xmlDoc.getElementsByTagName("eprint");
var y = xmlDoc.getElementsByTagName("person_search");
var z = xmlDoc.getElementsByTagName("abstract_original");for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = ""; var temp = x[i].getElementsByTagName("publication")[0].childNodes[0].nodeValue; if (typeof temp !== undefined){ publikation = temp; } else{ publikation = "0"; }Der Error ist leider immer noch der selbe:
Uncaught TypeError: x[i].getElementsByTagName(...)[0] is undefined@waytlion sagte in XML Parser Error: undefined:
Hallo,
danke für die schnelle Antwort, habe den Code folgendermaßen angepasst:var x = xmlDoc.getElementsByTagName("eprint");
var y = xmlDoc.getElementsByTagName("person_search");
var z = xmlDoc.getElementsByTagName("abstract_original");for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = ""; var temp = x[i].getElementsByTagName("publication")[0].childNodes[0].nodeValue; if (typeof temp !== undefined){ publikation = temp; } else{ publikation = "0"; }Der Error ist leider immer noch der selbe:
Uncaught TypeError: x[i].getElementsByTagName(...)[0] is undefinedVersuch mal dieses:
for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = "0"; const publicationElement = x[i].getElementsByTagName("publication"); if (typeof publicationElement == 'array' && typeof publicationElement[0] == object && publicationElement[0].nodeValue != undefined) publication = publicationElement[0].nodeValueAlternativ sollte auch gehen:
for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = ""; try { publication = x[i].getElementsByTagName("publication")[0].childNodes[0].nodeValue; } catch { publikation = "0"; } -
@waytlion sagte in XML Parser Error: undefined:
Hallo,
danke für die schnelle Antwort, habe den Code folgendermaßen angepasst:var x = xmlDoc.getElementsByTagName("eprint");
var y = xmlDoc.getElementsByTagName("person_search");
var z = xmlDoc.getElementsByTagName("abstract_original");for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = ""; var temp = x[i].getElementsByTagName("publication")[0].childNodes[0].nodeValue; if (typeof temp !== undefined){ publikation = temp; } else{ publikation = "0"; }Der Error ist leider immer noch der selbe:
Uncaught TypeError: x[i].getElementsByTagName(...)[0] is undefinedVersuch mal dieses:
for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = "0"; const publicationElement = x[i].getElementsByTagName("publication"); if (typeof publicationElement == 'array' && typeof publicationElement[0] == object && publicationElement[0].nodeValue != undefined) publication = publicationElement[0].nodeValueAlternativ sollte auch gehen:
for (let i = 0; i <x.length; i++) { titel = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />"; publikation = ""; try { publication = x[i].getElementsByTagName("publication")[0].childNodes[0].nodeValue; } catch { publikation = "0"; }@asgothian
Vielen Dank,
hab es über try and catch gelöst, anders hat es leider nicht funktioniert :) -
@asgothian
Vielen Dank,
hab es über try and catch gelöst, anders hat es leider nicht funktioniert :)Solange es geht ist es ja gut. Bei so tief verschachtelten Strukturen ist der try/catch Ansatz auch nicht unbedingt falsch. Ansonsten muss halt auf jeder Ebene geschaut werden ob das Objekt auch dem entspricht was man erwartet.
A.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden