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(); } }
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; }