예제 #1
0
  public Gathering ReadGatheringXML(File _gatheringFile) {
    ArrayList<GatheringsPlayerData> playerList = new ArrayList<GatheringsPlayerData>();
    Document dom = null;

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

    try {
      DocumentBuilder db = dbf.newDocumentBuilder();
      dom = db.parse(_gatheringFile);
    } catch (ParserConfigurationException pce) {
      return new Gathering(playerList, 0);
    } catch (SAXException se) {
      return new Gathering(playerList, 0);
    } catch (IOException ioe) {
      return new Gathering(playerList, 0);
    }

    if (dom == null) return new Gathering(playerList, 0);

    Element docEle = dom.getDocumentElement();

    // Element playerList = (Element)
    // docEle.getElementsByTagName("players").item(0);
    // int numOfPlayers = Integer.parseInt(playerList.getAttribute("number"));

    NodeList nl = docEle.getElementsByTagName("player");
    if (nl != null && nl.getLength() > 0) {
      for (int i = 0; i < nl.getLength(); i++) {

        Element el = (Element) nl.item(i);

        Element name = (Element) el.getElementsByTagName("name").item(0);
        String customName = "";
        customName = (String) name.getChildNodes().item(0).getNodeValue();

        Element life = (Element) el.getElementsByTagName("startinglife").item(0);
        String sLife = (String) life.getChildNodes().item(0).getNodeValue();
        int startingLife = Integer.parseInt(sLife);

        GatheringsPlayerData player = new GatheringsPlayerData();
        player.setCustomName(customName);
        player.setStartingLife(startingLife);

        playerList.add(player);
      }
    }

    int displayMode;
    Element mode = (Element) docEle.getElementsByTagName("displaymode").item(0);
    if (mode != null) {
      String sMode = (String) mode.getChildNodes().item(0).getNodeValue();
      displayMode = Integer.parseInt(sMode);
    } else {
      displayMode = 0;
    }

    return new Gathering(playerList, displayMode);
  }