Example usage for org.xml.sax.helpers DefaultHandler DefaultHandler

List of usage examples for org.xml.sax.helpers DefaultHandler DefaultHandler

Introduction

In this page you can find the example usage for org.xml.sax.helpers DefaultHandler DefaultHandler.

Prototype

DefaultHandler

Source Link

Usage

From source file:Main.java

public static void main(String args[]) throws Exception {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    SAXParser saxParser = factory.newSAXParser();
    DefaultHandler handler = new DefaultHandler() {
        public void startElement(String uri, String localName, String qName, Attributes attributes)
                throws SAXException {
            System.out.println(qName);
        }//w  ww  .  ja  v  a  2s.co m

        public void characters(char ch[], int start, int length) throws SAXException {
            System.out.println(new String(ch, start, length));
        }
    };

    saxParser.parse(args[0], handler);
}

From source file:Main.java

public static void main(String[] args) throws Exception {
    SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
    parser.parse(new File("test.xml"), new DefaultHandler() {

        @Override//from w  w  w  .java 2 s  .  com
        public void startElement(String uri, String localName, String qName, Attributes atts)
                throws SAXException {
            if (qName.equals("passenger")) {
                System.out.println("id = " + atts.getValue(0));
            }
        }

        @Override
        public void endElement(String uri, String localName, String qName) throws SAXException {
        }

        @Override
        public void characters(char[] ch, int start, int length) throws SAXException {
            String text = new String(ch, start, length);
            if (!text.trim().isEmpty()) {
                System.out.println("name " + text);
            }
        }
    });
}

From source file:MainClass.java

public static void main(String args[]) {
    try {/*from ww  w  . j  a  v  a  2s  .  c  o  m*/
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();
        DefaultHandler handler = new DefaultHandler() {
            boolean name = false;

            public void startElement(String uri, String localName, String qName, Attributes attributes)
                    throws SAXException {
                if (qName.equalsIgnoreCase("NAME")) {
                    name = true;
                }
            }

            public void characters(char ch[], int start, int length) throws SAXException {
                if (name) {
                    System.out.println("Name: " + new String(ch, start, length));
                    name = false;
                }
            }
        };

        saxParser.parse(new InputSource(new StringReader(xmlString)), handler);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:NameLister.java

public static void main(String args[]) {

    if (args.length != 1) {
        System.err.println("Usage: java NameLister xmlfile.xml");
        System.exit(-1);//from  w w  w.jav  a 2  s  .com
    }

    try {

        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();

        DefaultHandler handler = new DefaultHandler() {
            boolean name = false;

            public void startElement(String uri, String localName, String qName, Attributes attributes)
                    throws SAXException {
                if (qName.equalsIgnoreCase("NAME")) {
                    name = true;
                }
            }

            public void characters(char ch[], int start, int length) throws SAXException {
                if (name) {
                    System.out.println("Name: " + new String(ch, start, length));
                    name = false;
                }
            }
        };

        saxParser.parse(args[0], handler);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:SAXTest.java

public static void main(String[] args) throws Exception {
    String url;//from   w w w.  ja  va2 s .  c  o  m
    if (args.length == 0) {
        url = "http://www.w3c.org";
        System.out.println("Using " + url);
    } else
        url = args[0];

    DefaultHandler handler = new DefaultHandler() {
        public void startElement(String namespaceURI, String lname, String qname, Attributes attrs) {
            if (lname.equals("a") && attrs != null) {
                for (int i = 0; i < attrs.getLength(); i++) {
                    String aname = attrs.getLocalName(i);
                    if (aname.equals("href"))
                        System.out.println(attrs.getValue(i));
                }
            }
        }
    };

    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setNamespaceAware(true);
    SAXParser saxParser = factory.newSAXParser();
    InputStream in = new URL(url).openStream();
    saxParser.parse(in, handler);
}

From source file:elaborate.util.XmlUtil.java

public static boolean isWellFormed(String body) {
    try {/* ww  w .j  a v  a  2 s  .  co m*/
        SAXParser parser;
        parser = SAXParserFactory.newInstance().newSAXParser();
        DefaultHandler dh = new DefaultHandler();
        parser.parse(new InputSource(new StringReader(body)), dh);
    } catch (ParserConfigurationException e1) {
        e1.printStackTrace();
        return false;
    } catch (SAXException e1) {
        e1.printStackTrace();
        Log.error("body={}", body);
        return false;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
    return true;
}

From source file:com.badugi.game.logic.model.utils.common.XmlUtils.java

/**
 * Retrieve the text for a group of elements. Each text element is an entry
 * in a list./*from  w w w . ja  v  a 2s.  c o  m*/
 * <p>This method is currently optimized for the use case of two elements in a list.
 *
 * @param xmlAsString the xml response
 * @param element     the element to look for
 * @return the list of text from the elements.
 */
public static List<String> getTextForElements(final String xmlAsString, final String element) {
    final List<String> elements = new ArrayList<String>(2);
    final XMLReader reader = getXmlReader();

    final DefaultHandler handler = new DefaultHandler() {

        private boolean foundElement = false;

        private StringBuilder buffer = new StringBuilder();

        public void startElement(final String uri, final String localName, final String qName,
                final Attributes attributes) throws SAXException {
            if (localName.equals(element)) {
                this.foundElement = true;
            }
        }

        public void endElement(final String uri, final String localName, final String qName)
                throws SAXException {
            if (localName.equals(element)) {
                this.foundElement = false;
                elements.add(this.buffer.toString());
                this.buffer = new StringBuilder();
            }
        }

        public void characters(char[] ch, int start, int length) throws SAXException {
            if (this.foundElement) {
                this.buffer.append(ch, start, length);
            }
        }
    };

    reader.setContentHandler(handler);
    reader.setErrorHandler(handler);

    try {
        reader.parse(new InputSource(new StringReader(xmlAsString)));
    } catch (final Exception e) {
        LOG.error(e, e);
        return null;
    }

    return elements;
}

From source file:com.opengamma.financial.convention.calendar.XMLCalendarLoader.java

/**
 * Populate the specified working day calendar from the XML file.
 * @param calendar  the calendar to populate, not null
 *//*from  ww  w  .ja  v a2  s.co m*/
public void populateCalendar(final ExceptionCalendar calendar) {
    final SAXParserFactory factory = SAXParserFactory.newInstance();
    try {
        final SAXParser parser = factory.newSAXParser();
        parser.parse(getSourceDataURI(), new DefaultHandler() {
            private ParserState _state = ParserState.OTHER;
            private String _innerText;

            @Override
            public void startElement(final String uri, final String localName, final String qName,
                    final Attributes attributes) {
                switch (_state) {
                case OTHER:
                    if (qName.equalsIgnoreCase(TAG_WORKING_DAYS)) {
                        _state = ParserState.WORKING_DAYS;
                    } else if (qName.equalsIgnoreCase(TAG_NON_WORKING_DAYS)) {
                        _state = ParserState.NON_WORKING_DAYS;
                    }
                    break;
                }
            }

            @Override
            public void characters(final char[] ch, final int start, final int length) {
                _innerText = new String(ch, start, length);
            }

            @Override
            public void endElement(final String uri, final String localName, final String qName) {
                switch (_state) {
                case WORKING_DAYS:
                    if (qName.equalsIgnoreCase(TAG_DATE)) {
                        calendar.addWorkingDay(LocalDate.parse(_innerText));
                    } else if (qName.equalsIgnoreCase(TAG_WORKING_DAYS)) {
                        _state = ParserState.OTHER;
                    }
                    break;
                case NON_WORKING_DAYS:
                    if (qName.equalsIgnoreCase(TAG_DATE)) {
                        calendar.addNonWorkingDay(LocalDate.parse(_innerText));
                    } else if (qName.equalsIgnoreCase(TAG_NON_WORKING_DAYS)) {
                        _state = ParserState.OTHER;
                    }
                    break;
                }
            }
        });
    } catch (final ParserConfigurationException ex) {
        throw wrap(ex);
    } catch (final SAXException ex) {
        throw wrap(ex);
    } catch (final IOException ex) {
        throw wrap(ex);
    }
}

From source file:io.dataapps.chlorine.mask.MaskFactory.java

public MaskFactory(FinderEngine fEngine, InputStream in) {
    engine = fEngine;/*from  w ww . j a v a 2  s .  c  o  m*/
    try {
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();

        DefaultHandler handler = new DefaultHandler() {

            boolean bName = false;
            boolean bClass = false;
            boolean bConfiguration = false;
            boolean bDefault = false;

            String name = "";
            String className = "";
            String configuration = "";
            String defaultStr;

            public void startElement(String uri, String localName, String qName, Attributes attributes)
                    throws SAXException {
                if (qName.equalsIgnoreCase("NAME")) {
                    bName = true;
                } else if (qName.equalsIgnoreCase("CLASS")) {
                    bClass = true;
                } else if (qName.equalsIgnoreCase("CONFIGURATION")) {
                    bConfiguration = true;
                } else if (qName.equalsIgnoreCase("DEFAULT")) {
                    bDefault = true;
                }
            }

            public void endElement(String uri, String localName, String qName) throws SAXException {

                if (qName.equalsIgnoreCase("NAME")) {
                    bName = false;
                    name = name.trim();
                } else if (qName.equalsIgnoreCase("CLASS")) {
                    bClass = false;
                    className = className.trim();
                } else if (qName.equalsIgnoreCase("CONFIGURATION")) {
                    bConfiguration = false;
                    configuration = configuration.trim();
                } else if (qName.equalsIgnoreCase("DEFAULT")) {
                    bDefault = false;
                    defaultMasker = defaultStr.trim();
                } else if (qName.equalsIgnoreCase("MASKER")) {

                    if (!name.isEmpty() && !className.isEmpty() && !configuration.isEmpty()) {
                        try {
                            Class<?> klass = Thread.currentThread().getContextClassLoader()
                                    .loadClass(className);
                            Masker masker = (Masker) klass.newInstance();
                            masker.init(engine, configuration);
                            maskers.put(name, masker);
                        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
                            LOG.error(e);
                        }
                    } else {
                        if (name.isEmpty()) {
                            LOG.error("The name for a masker cannot be empty");
                        }
                        if (className.isEmpty()) {
                            LOG.error("The class name for a masker cannot be empty");
                        }
                        if (configuration.isEmpty()) {
                            LOG.error("The configuration for a masker cannot be empty");
                        }
                    }
                    name = "";
                    configuration = "";
                    className = "";
                    defaultStr = "";
                }
            }

            public void characters(char ch[], int start, int length) throws SAXException {
                if (bName) {
                    name += new String(ch, start, length);
                } else if (bClass) {
                    className += new String(ch, start, length);
                } else if (bConfiguration) {
                    configuration += new String(ch, start, length);
                } else if (bDefault) {
                    defaultStr += new String(ch, start, length);
                }
            }
        };

        saxParser.parse(in, handler);

    } catch (Exception e) {
        LOG.error(e);
    }
}

From source file:codeswarm.XMLQueueLoader.java

public void run() {
    XMLReader reader = null;//  www .  j  ava 2  s  . c  o m
    try {
        reader = XMLReaderFactory.createXMLReader();
    } catch (SAXException e) {
        logger.error("Couldn't find/create an XML SAX Reader", e);
        System.exit(1);
    }

    reader.setContentHandler(new DefaultHandler() {
        public void startElement(String uri, String localName, String name, Attributes atts)
                throws SAXException {
            if (name.equals("event")) {
                String eventFilename = atts.getValue("filename");
                String eventDatestr = atts.getValue("date");
                long eventDate = Long.parseLong(eventDatestr);
                String eventWeightStr = atts.getValue("weight");
                int eventWeight = 1;
                if (eventWeightStr != null) {
                    eventWeight = Integer.parseInt(eventWeightStr);
                }

                //It's difficult for the user to tell that they're missing events,
                //so we should crash in this case
                if (isXMLSorted) {
                    if (eventDate < maximumDateSeenSoFar) {
                        logger.error(
                                "Input not sorted, you must set IsInputSorted to false in your config file");
                        System.exit(1);
                    } else
                        maximumDateSeenSoFar = eventDate;
                }

                String eventAuthor = atts.getValue("author");
                // int eventLinesAdded = atts.getValue( "linesadded" );
                // int eventLinesRemoved = atts.getValue( "linesremoved" );

                FileEvent evt = new FileEvent(eventDate, eventAuthor, "", eventFilename, eventWeight);
                try {
                    queue.put(evt);
                    fireEventAddedEvent();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    logger.error("Interrupted while trying to put into eventsQueue", e);
                    System.exit(1);
                }
            }
        }

        /*
         * (non-Javadoc)
         * @see org.xml.sax.helpers.DefaultHandler#endDocument()
         * 
         * Notify any listeners that the Document has finished parsing.
         */
        public void endDocument() {
            fireTaskDoneEvent();
        }

    });

    try {
        reader.parse(fullFilename);
    } catch (Exception e) {
        logger.error("Error parsing xml:", e);
        System.exit(1);
    }
}