Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package project_Task1;
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.ProtocolException;
- import java.net.URL;
- import java.io.InputStream;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- import org.xml.sax.SAXException;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Scanner; // Import the Scanner class
- public class API_Call {
- public static void main (String args[]) throws IOException, ParserConfigurationException, SAXException{
- URL url = null;
- URL url_citing_article = null;
- String url_string = "";
- String url_string_articles_citations = "";
- String url_string_citing_article = "";
- Scanner myObj = new Scanner(System.in); // Create a Scanner object
- System.out.println("Please enter DOI:");
- String doi = myObj.nextLine(); // Read user input
- if (doi.contentEquals("")) {
- doi = "10.7554/eLife.15550";
- System.out.println("No DOI entered. Using example DOI: " + doi);
- }else {
- System.out.println("DOI is:" + doi);
- }
- // DOI to PMID ID Converter (API DOCS: https://www.ncbi.nlm.nih.gov/pmc/tools/id-converter-api/)
- String url_convert_string = "https://www.ncbi.nlm.nih.gov/pmc/utils/idconv/v1.0/?"
- + "tool=citation_network&email=brad.w.english@gmail.com&ids="
- + doi;
- url = new URL(url_convert_string);
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- URL url1 = new URL(url_convert_string);
- InputStream stream = url1.openStream();
- Document doc = docBuilder.parse(stream);
- NodeList record_list = doc.getElementsByTagName("record");
- String pmid_string = "";
- for(int i=0;i<record_list.getLength();i++) {
- Node record_node = record_list.item(i);
- Element record = (Element) record_node;
- pmid_string = record.getAttribute("pmid");
- System.out.println("The PMID is " + pmid_string);
- }
- // (API DOCS: https://www.ncbi.nlm.nih.gov/pmc/tools/cites-citedby/)
- System.out.print("\nPMIDs of cited articles:\n");
- url_string_articles_citations = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?"
- + "dbfrom=pubmed&linkname=pubmed_pubmed_refs&id="
- + pmid_string;
- url = new URL(url_string_articles_citations);
- DocumentBuilderFactory dbf_citations = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder_citations = dbf_citations.newDocumentBuilder();
- InputStream stream_citations = url.openStream();
- Document doc_citations = docBuilder_citations.parse(stream_citations);
- NodeList link_list = doc_citations.getElementsByTagName("Id");
- for(int i=0;i<link_list.getLength();i++) {
- Node citation_node = link_list.item(i);
- Element citation = (Element) citation_node;
- System.out.print(citation.getTextContent() +',');
- }
- System.out.print("\nPMIDs which cite this article:\n");
- url_string_citing_article = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?"
- + "dbfrom=pubmed&linkname=pubmed_pubmed_citedin&id="
- + pmid_string;
- url_citing_article = new URL(url_string_citing_article);
- DocumentBuilderFactory dbf_citing_article = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder_citing_article = dbf_citing_article.newDocumentBuilder();
- InputStream stream_citing_article = url_citing_article.openStream();
- Document doc_citing_article = docBuilder_citing_article.parse(stream_citing_article);
- NodeList citing_article_link_list = doc_citing_article.getElementsByTagName("Id");
- for(int i=0;i<citing_article_link_list.getLength();i++) {
- Node citing_article_node = citing_article_link_list.item(i);
- Element citing_article = (Element) citing_article_node;
- System.out.print(citing_article.getTextContent() + ',');
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement