/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package newsfeedreader_kbeham17; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URLConnection; import java.util.Enumeration; import java.util.Hashtable; import java.util.logging.Level; import java.util.logging.Logger; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /** * * @author kbeham17 */ public class SAXLocalNameCount extends DefaultHandler { InputStream is = null; private Hashtable tags; public SAXLocalNameCount(InputStream is) { this.is = is; } public void start() { SAXParserFactory spf = SAXParserFactory.newInstance(); if (spf != null) { SAXParser sp = null; try { sp = spf.newSAXParser(); sp.parse(is, this); } catch (ParserConfigurationException | SAXException | IOException ex) { Logger.getLogger(SAXLocalNameCount.class.getName()).log(Level.SEVERE, null, ex); } } } @Override public void endElement(String namespaceURL, String localName, String qName) throws SAXException { } @Override public void startElement(String namespaceURL,String localName,String qName, Attributes atts) throws SAXException { String key = localName; Object value = tags.get(key); if (value == null) { tags.put(key, new Integer(1)); } else { int count = ((Integer)value).intValue(); count++; tags.put(key, new Integer(count)); } } public String convertToFileURL(String filename) { String path = new File(filename).getAbsolutePath(); if (File.separatorChar != '/') { path = path.replace(File.separatorChar, '/'); } if (!path.startsWith("/")) { path = "/" + path; } return path; } }