Ich habe Schwierigkeiten, den Wert für einen bestimmten Knoten zu ermitteln. Ich ziehe meine XML-Daten aus der URL http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=25092882,25260646,25242549&retmode=xml und ich bin mit dem folgenden CodeUntergeordnete Child-XML-Knoten mit Java-Script analysieren
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
myFunction(xhttp);
}
};
xhttp.open("GET",
"http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=25092882,25260646,25242549&retmode=xml",
true);
xhttp.send();}
function myFunction(xml) {
var txt = '';
var i;
var affiliation;
var aff;
var pmcid = '';
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName("PubmedArticle");
var authors = "";
for (i = 0; i < x.length; i++) {
var pmid = 'PMID: ' + x[i].getElementsByTagName("PMID")[0].childNodes[
0].nodeValue;
txt += pmid + "</br> ";
var author = x[i].getElementsByTagName("Author");
for (a = 0; a < author.length; a++) {
authors += author[a].getElementsByTagName("LastName")[0].childNodes[
0].nodeValue;
authors += " ";
authors += author[a].getElementsByTagName("Initials")[0].childNodes[
0].nodeValue;
affiliation = author[a].getElementsByTagName("AffiliationInfo")
authors += " Author Affiliation: " + affiliation[0].getElementsByTagName(
"Affiliation")[0].childNodes[0].nodeValue;
authors += " " + "</br> ";
}
txt += authors + " ";
var articleTitle = 'Article Title: ' + x[i].getElementsByTagName(
"ArticleTitle")[0].childNodes[0].nodeValue;
txt += articleTitle + "</br> ";
var journal = 'Journal Title: ' + x[i].getElementsByTagName("Title")[
0].childNodes[0].nodeValue;
txt += journal + "</br> ";
var yearPub = 'Date Published: ';
txt += yearPub + "</br> "
var AbstractText = 'Abstract Text: ' + x[i].getElementsByTagName(
"AbstractText")[0].childNodes[0].nodeValue;
txt += AbstractText + "</br> ";
txt += "PMCID: " + pmcid + "</br> "
txt += "</br> "
}
document.getElementById("demo").innerHTML += txt;
}
Die Linie, die ich mit Mühe habe, ist die Zugehörigkeit. Der Wert befindet sich innerhalb des Autorenknotens, den ich wiederhole, und dann gibt es die AffiliationInfo und dann die Affiliation. Wenn ich die Affiliations-Informationen herausnehme, läuft die Funktion gut, aber ich muss die Affiliation-Werte erhalten.
Vielen Dank für die Zeit.
Das funktioniert gut dort. Wie wäre es mit dem Monat im PubDate-Bereich. Ich kann das Jahr bekommen, aber nicht den Monat? v = x [i] .getElementsByTagName ("PubDate"); y + = v [0] .getElementsByTagName ("Jahr") [0] .childNodes [0] .nodeValue; Tut mir leid, ich weiß nicht, wie man einen Code-Block in den Kommentaren hinzufügen – user1314159
Ich habe es, einige der PubDate Datensätze haben keinen Monat, so dass es nicht ausgeführt wird. Wenn ich nur Datensätze mit Jahren und Monaten verarbeite, funktioniert es gut. Wie prüfe ich, ob Monat existiert? – user1314159
Danke - Ich habe alles, was ich brauche, jetzt muss ich an der Geschwindigkeit arbeiten. Ich würde gerne 100 Publikationen ziehen und dann sofort parsen. Ich werde den JavaScript-XML-Prozess als meine anfängliche Benchmark verwenden und jetzt jQuery ausprobieren und sehen, was schneller ist. Haben Sie Empfehlungen, was die schnellsten Ergebnisse bringt? – user1314159