From 0eedbaa5f4da4570137da7105dd82a9089817a3d Mon Sep 17 00:00:00 2001 From: pazis Date: Wed, 28 Aug 2019 11:00:23 +0000 Subject: [PATCH] stax fix --- .../com/baeldung/xml/stax/StaxParser.java | 65 ++++++++++--------- .../baeldung/xml/stax/StaxParserUnitTest.java | 4 +- 2 files changed, 38 insertions(+), 31 deletions(-) diff --git a/xml/src/main/java/com/baeldung/xml/stax/StaxParser.java b/xml/src/main/java/com/baeldung/xml/stax/StaxParser.java index 6c06bfdb17..9e3b5e8b0f 100644 --- a/xml/src/main/java/com/baeldung/xml/stax/StaxParser.java +++ b/xml/src/main/java/com/baeldung/xml/stax/StaxParser.java @@ -1,4 +1,5 @@ package com.baeldung.xml.stax; + import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.List; @@ -16,52 +17,58 @@ import javax.xml.namespace.QName; public class StaxParser { public static List parse(String path) { - List webSites = new ArrayList(); - WebSite webSite = null; + List websites = new ArrayList(); + WebSite website = null; XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); try { XMLEventReader reader = xmlInputFactory.createXMLEventReader(new FileInputStream(path)); - while(reader.hasNext()){ + while (reader.hasNext()) { XMLEvent nextEvent = reader.nextEvent(); - if (nextEvent.isStartElement()){ + if (nextEvent.isStartElement()) { StartElement startElement = nextEvent.asStartElement(); - switch (startElement.getName().getLocalPart()) { - case "website": - webSite = new WebSite(); - Attribute url = startElement.getAttributeByName(new QName("url")); - if (url != null) { - webSite.setUrl(url.getValue()); - } - break; - case "name": - nextEvent = reader.nextEvent(); - webSite.setName(nextEvent.asCharacters().getData()); - break; - case "category": - nextEvent = reader.nextEvent(); - webSite.setCategory(nextEvent.asCharacters().getData()); - break; - case "status": - nextEvent = reader.nextEvent(); - webSite.setStatus(nextEvent.asCharacters().getData()); - break; + switch (startElement.getName() + .getLocalPart()) { + case "website": + website = new WebSite(); + Attribute url = startElement.getAttributeByName(new QName("url")); + if (url != null) { + website.setUrl(url.getValue()); + } + break; + case "name": + nextEvent = reader.nextEvent(); + website.setName(nextEvent.asCharacters() + .getData()); + break; + case "category": + nextEvent = reader.nextEvent(); + website.setCategory(nextEvent.asCharacters() + .getData()); + break; + case "status": + nextEvent = reader.nextEvent(); + website.setStatus(nextEvent.asCharacters() + .getData()); + break; } } - if(nextEvent.isEndElement()){ + if (nextEvent.isEndElement()) { EndElement endElement = nextEvent.asEndElement(); - if(endElement.getName().getLocalPart().equals("website")){ - webSites.add(webSite); + if (endElement.getName() + .getLocalPart() + .equals("website")) { + websites.add(website); } } } - } catch (XMLStreamException xse){ + } catch (XMLStreamException xse) { System.out.println("XMLStreamException"); xse.printStackTrace(); } catch (FileNotFoundException fnfe) { System.out.println("FileNotFoundException"); fnfe.printStackTrace(); } - return webSites; + return websites; } } diff --git a/xml/src/test/java/com/baeldung/xml/stax/StaxParserUnitTest.java b/xml/src/test/java/com/baeldung/xml/stax/StaxParserUnitTest.java index 7629487e11..587c2adf3b 100644 --- a/xml/src/test/java/com/baeldung/xml/stax/StaxParserUnitTest.java +++ b/xml/src/test/java/com/baeldung/xml/stax/StaxParserUnitTest.java @@ -20,12 +20,12 @@ public class StaxParserUnitTest { @Test public void givenWebsitesXML_whenParsed_thenSizeIsThree() { List websites = StaxParser.parse("src/test/resources/xml/websites.xml"); - assertTrue(websites.size() == 3); + assertEquals(3, websites.size()); } @Test public void givenWebsitesXML_whenParsed_thenLocalhostExists() { List websites = StaxParser.parse("src/test/resources/xml/websites.xml"); - assertEquals(websites.get(2).getName(),"Localhost"); + assertEquals("Localhost", websites.get(2).getName()); } }