public static ArrayList<Book> parseBooksXML(String xml) {
    ArrayList<Book> bookList = new ArrayList<Book>();
    Book book = null;
    try {
      DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();

      InputSource is = new InputSource();
      is.setCharacterStream(new StringReader(xml));

      Document doc = dBuilder.parse(is);
      doc.getDocumentElement().normalize();
      System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
      NodeList nList = doc.getElementsByTagName("book");
      for (int i = 0; i < nList.getLength(); i++) {
        Node nNode = nList.item(i);
        book = new Book();
        if (nNode.getNodeType() == Node.ELEMENT_NODE) {
          Element eElement = (Element) nNode;

          book.setAuthor_fname(
              eElement.getElementsByTagName("author_fname").item(0).getTextContent());
          book.setAuthor_lname(
              eElement.getElementsByTagName("author_lname").item(0).getTextContent());
          book.setBook_title(eElement.getElementsByTagName("book_title").item(0).getTextContent());
          book.setYear(
              Integer.parseInt(eElement.getElementsByTagName("year").item(0).getTextContent()));
          book.setPrice(
              Double.parseDouble(eElement.getElementsByTagName("price").item(0).getTextContent()));
          book.setIsbn(eElement.getElementsByTagName("isbn").item(0).getTextContent());

          System.out.println(
              "Author First Name : "
                  + eElement.getElementsByTagName("author_fname").item(0).getTextContent());
          System.out.println(
              "Author Last Name : "
                  + eElement.getElementsByTagName("author_lname").item(0).getTextContent());
          System.out.println(
              "Book Title : "
                  + eElement.getElementsByTagName("book_title").item(0).getTextContent());
          System.out.println(
              "Price : " + eElement.getElementsByTagName("price").item(0).getTextContent());
          System.out.println(
              "Year : " + eElement.getElementsByTagName("year").item(0).getTextContent());
          System.out.println(
              "ISBN : " + eElement.getElementsByTagName("isbn").item(0).getTextContent());
          System.out.println("----------------------------------");
        }
        bookList.add(book);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return bookList;
  }