Question: Using REGEX extract description, title, link and date from XML so it only prints out description tile link and date instead of the entire feed.

Using REGEX extract description, title, link and date from XML so it only prints out description tile link and date instead of the entire feed.

package algs54; import java.io.*; import java.net.*; import java.util.*; import java.util.regex.*; import stdlib.*;

// Create an RSS feed reader that uses Regular Expressions // to extract each item and relevant data in the given feed. // You may only use regular expressions to extract the data.

public class hw8 { public class RSSItem { public String title; public String description; public String link; public String date;

public RSSItem(String link, String title, String desc, String date) { this.link = link; this.title = title; this.description = desc; this.date = date; }; public String toString() { return "Title: " + title + " " + "Link: " + link + " " + "PubDate: " + date + " " + "Description: " + description + " "; } }

public static String URLReader(URL url) throws IOException { String content; try (Scanner scanner = new Scanner(url.openStream(), String.valueOf("UTF-8"))) { content = scanner.useDelimiter("\\A").next(); } return content; }

public static ArrayList ProcessRSSFeed(String feed) { // TODO // Extract all RSS items from the feed. In general, RSS feeds are in XML format, where // each item and property is encapsulated within open/close tags: ... // For each RSS item, you will need to extract the title, description, pubDate, and link. // For the description, you must capture only the text and remove the any CDATA or HTML // tags from the description. //Pattern match = Pattern.compile("[]"); // feed = match(feed).matcher; // HINT: removing new lines & whitespaces may be helpful, for example: Pattern p = Pattern.compile("[ \t ]+", Pattern.DOTALL | Pattern.CASE_INSENSITIVE); feed = p.matcher(feed).replaceAll(" "); // Uncomment to print the feed for debugging System.out.println(feed); ArrayList rss_items = new ArrayList<>(); // Adding a new RSS Item: // rss_items.add( new hw8().new RSSItem(link, title, description, date) );

return rss_items; }

public static void main(String[] args) { try { String rss = URLReader(new URL("https://www.theonion.com/rss")); ArrayList items = ProcessRSSFeed(rss); for (int i = 0; i < items.size(); i++) { System.out.println(items.get(i).toString()); } } catch(IOException e) {} } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!