private void persistNewsData(NodeList titles, NodeList links, NodeList descriptions) {
    // Persists news data feed.
    // Also clears out previously persisted news feed data

    PersistenceManager pm = PMF.get().getPersistenceManager();
    javax.jdo.Query query = pm.newQuery(NewsItem.class);
    Long res = query.deletePersistentAll();

    System.out.println("Datastore deleted  " + res + "records");

    pm = PMF.get().getPersistenceManager();

    try {
      for (int i = 1; i < titles.getLength(); i++) {
        NewsItem ni = new NewsItem();
        ni.setTitle(titles.item(i).getTextContent());
        ni.setLink(links.item(i).getTextContent());
        if (descriptions.item(i) != null) {
          ni.setDescription(new Text(descriptions.item(i).getTextContent()));
        }
        pm.makePersistent(ni);
      }
    } finally {
      pm.close();
    }
  }
Exemple #2
0
  private NewsItem parseInfo(Element item) {

    NewsItem tempItem = new NewsItem();

    tempItem.setTitle(item.getElementsByTagName("title").item(0).getTextContent());
    tempItem.setLink(item.getElementsByTagName("link").item(0).getTextContent());

    try {
      tempItem.setPubDate(
          new SimpleDateFormat("EEE, dd MMM yyyy HH:mm z")
              .parse(
                  item.getElementsByTagName("pubDate")
                      .item(0)
                      .getTextContent()
                      .replaceAll("\\p{Cntrl}", "")));
    } catch (ParseException e) {
      System.out.println("NewsFeed: parseInfo Error parsing date-> " + e.getLocalizedMessage());
      e.printStackTrace();
    }

    String tmpDesc = item.getElementsByTagName("description").item(0).getTextContent();
    int imgStartIndex = tmpDesc.indexOf("<img");
    System.out.println("Start of img tag: " + imgStartIndex);

    if (imgStartIndex != -1) {

      int imgStopIndex = tmpDesc.indexOf("/>", imgStartIndex);
      System.out.println("Sto of img tag: " + imgStopIndex);
      String imageTag = tmpDesc.substring(imgStartIndex + 5, imgStopIndex - 1);
      tmpDesc = tmpDesc.substring(imgStopIndex + 2);
      imgStartIndex = imageTag.indexOf("src=\"");
      imgStopIndex = imageTag.indexOf("\" ", imgStartIndex);
      String imageSrc = imageTag.substring(imgStartIndex + 5, imgStopIndex);
      System.out.println("Image Link: " + imageSrc);
      tempItem.setImage(imageSrc);
    }

    tempItem.setDescription(tmpDesc);

    return tempItem;
  }