Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (120)
games submitted by our members
Games in WIP (577)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
  JavaGaming.org - Pastebin



Author: CopyableCougar4 (posted 2014-07-10 02:26:14, viewed 95 times)

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94  
package me.CopyableCougar4.xml;

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class XMLReader {
   
   /** Document to parse */
   private Document document;
   /** Tag name wrapping the elements */
   private String tagName;
   
   /**
    * Construct the reader, using the filepath (a file)
    * @throws ParserConfigurationException 
    * @throws IOException 
    * @throws SAXException 
    */
   public XMLReader(File file, String tagName) throws ParserConfigurationException, SAXException, IOException{
      this.tagName = tagName;
      // Parse the XML file
      DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
      document = dBuilder.parse(file);
      document.getDocumentElement().normalize();
   }
   
   /**
    * Get a NodeList for a tagname
    */
   public NodeList getNodes(String node){
      return document.getElementsByTagName(node);
   }
   
   /**
    * Get a node for an id from a nodelist, with the givne 'tagname'
    */
   public Element getNodeByID(String id, String tagname){
      NodeList nodeList = getNodes(tagname);
      for(int i = 0; i < nodeList.getLength(); i++){
         Node node = nodeList.item(i);
         Element element = (Element) node;
         if(element.getAttribute("id").equalsIgnoreCase(id)){
            return element;
         }
      }
      return null;
   }
   
   /**
    * Get a value for a node
    */
   public String getNodeValue(Node node, String tagName){
      Element element = (Element) node;
      return element.getElementsByTagName(tagName).item(0).getTextContent();
   }
   
   /**
    * Find a node with a given ID
    */
   public Node findByID(String id, String tag){
      NodeList nodes = ((Element) document.getElementsByTagName(tagName).item(0)).getElementsByTagName(tag);
      for(int index = 0; index < nodes.getLength(); index++){
         Node node = nodes.item(index);
         Element element = (Element) node;
         if(element.getAttribute("id").equalsIgnoreCase(id)){
            return node;
         }
      }
      return null;
   }
   
   /**
    * Find a tag for a node
    */
   public String findTag(Node node, String title){
      if(node == null){
         return null; // send the string null
      }
      Element element = (Element) node;
      return element.getAttribute(title) == null ? "NULL" : element.getAttribute(title);
   }

}


1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119  
package me.CopyableCougar4.xml;

import java.io.IOException;
import java.util.ArrayList;

import javax.xml.parsers.ParserConfigurationException;

import me.CopyableCougar4.main.ResourceHunter;
import me.CopyableCougar4.main.ResourceHunter.ResourceType;

import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public abstract class ReadableXMLElement {

   /** Tag title to look for. */
   private String title;
   /** Attributes to look for. */
   private ArrayList<String> attributes;
   /** Reader for the XML element */
   private XMLReader xmlReader;
   /** Tag to store data */
   private String tag;
   /** The wrapper */
   private String wrapper;

   /**
    * Construct the element
    */
   public ReadableXMLElement(String tag, String wrapper, File file){
      attributes = new ArrayList<String>();
      this.title = title;
      this.tag = tag;
      this.wrapper = wrapper;
      try {
         xmlReader = new XMLReader(file, wrapper);
      } catch (ParserConfigurationException | SAXException | IOException e) {
         e.printStackTrace();
      }
   }
   
   /**
    * Get the wrapper
    */
   public String getWrapper(){
      return wrapper;
   }
   
   /**
    * Get an attribute's value. The id is the unique identifier
    */
   public String getAttributeValue(String attribute, String id){
      Node node = xmlReader.findByID(id, tag);
      if(node == null){
         System.out.println("Node not found. ID: " + id + " Tag: " + tag + " Attribute: " + attribute + " Wrapper: " + wrapper + " Filename: " + title);
         return "0";
      }
      return xmlReader.findTag(node, attribute);
   }
   
   /**
    * Get the reader NodeList for a tag
    */
   public NodeList getNodesByTag(String tag){
      return xmlReader.getNodes(tag);
   }
   
   /**
    * Get an Element by an id
    */
   public Element getNodeByID(String id, String tagname){
      return xmlReader.getNodeByID(id, tagname);
   }
   
   /**
    * Get an attribute's value. The id is the unique identifier
    */
   public String getAttributeValue(String attribute){
      return getAttributeValue(attribute, "default");
   }
   
   /**
    * Add attributes all at once
    */
   public void addAttributes(String... attributes){
      for(String attribute : attributes){
         addAttribute(attribute);
      }
   }
   
   /**
    * Get the title
    */
   public String getTitle(){
      return title;
   }
   
   /**
    * Add an attribute
    */
   public void addAttribute(String attribute){
      attributes.add(attribute);
   }
   
   /**
    * Get the attributes
    */
   public ArrayList<String> getAttributes(){
      return attributes;
   }
   
   /**
    * Parse the element
    */
   public abstract void parseElement();

}





Dump your java code here :



Special syntax:
  • To highlight a line (yellow background), prefix it with '@@'
  • To indicate that a line should be removed (red background), prefix it with '-'
  • To indicate that a line should be added (green background), prefix it with '+'
  • To post multiple snippets, seperate them by '~~~~'
  EOF
 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Longarmx (52 views)
2014-10-17 03:59:02

Norakomi (43 views)
2014-10-16 15:22:06

Norakomi (33 views)
2014-10-16 15:20:20

lcass (37 views)
2014-10-15 16:18:58

TehJavaDev (68 views)
2014-10-14 00:39:48

TehJavaDev (66 views)
2014-10-14 00:35:47

TehJavaDev (59 views)
2014-10-14 00:32:37

BurntPizza (73 views)
2014-10-11 23:24:42

BurntPizza (45 views)
2014-10-11 23:10:45

BurntPizza (86 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!