@SuppressWarnings("incomplete-switch") public List<Weapon> parseByStAX() throws FileNotFoundException, XMLStreamException { List<Weapon> listWeapon = new ArrayList<Weapon>(); Weapon weapon = null; WeaponTagName elementName = null; XMLInputFactory inputFactory = XMLInputFactory.newInstance(); InputStream input = new FileInputStream("resources/weaponMarket.xml"); XMLStreamReader reader = inputFactory.createXMLStreamReader(input); while (reader.hasNext()) { int type = reader.next(); switch (type) { case XMLStreamConstants.START_ELEMENT: elementName = WeaponTagName.valueOf(reader.getLocalName().toUpperCase().replace("-", "_")); switch (elementName) { case WEAPON: weapon = new Weapon(); weapon.setId(reader.getAttributeValue(null, "id")); break; } break; case XMLStreamConstants.CHARACTERS: String text = reader.getText().trim(); if (text.isEmpty()) { break; } switch (elementName) { case WEAPON_TYPE: weapon.setWeaponType(text); break; case WEAPON_NAME: weapon.setWeaponName(text); break; case COST: weapon.setCost(text); break; } break; case XMLStreamConstants.END_ELEMENT: elementName = WeaponTagName.valueOf(reader.getLocalName().toUpperCase().replace("-", "_")); switch (elementName) { case WEAPON: listWeapon.add(weapon); } } } return listWeapon; }
public List<Weapon> parseByDOM() throws SAXException, IOException { List<Weapon> listWeapon = new ArrayList<Weapon>(); Weapon weapon = null; DOMParser parser = new DOMParser(); parser.parse("resources/weaponMarket.xml"); Document document = parser.getDocument(); Element root = document.getDocumentElement(); NodeList weaponNodes = root.getElementsByTagName("weapon"); for (int i = 0; i < weaponNodes.getLength(); i++) { weapon = new Weapon(); Element weaponElement = (Element) weaponNodes.item(i); weapon.setId(weaponElement.getAttribute("id")); weapon.setWeaponName(getSingleChild(weaponElement, "weapon-name").getTextContent().trim()); weapon.setWeaponType(getSingleChild(weaponElement, "weapon-type").getTextContent().trim()); weapon.setCost(getSingleChild(weaponElement, "cost").getTextContent().trim()); listWeapon.add(weapon); } return listWeapon; }