XML Tag-ID auslesen mit getElementById

Kenan89

Bekanntes Mitglied
Hallo,

mein Java 2D Spiel geht weiter und ich bin dabei, die Spielkarten
mittels einer xml-Datei zu laden:

Java:
<?xml version="1.0" encoding="ISO-8859-1"?>

<level>
	
	<info id="info" sizeX="320" sizeY="320" lvlName="testlevel" tilesetName="tileset1.png" />

</level>

Das Problem ist, dass ich in Java nicht auf Elemente mit ID zugreifen kann:

JAVA-Code:

Java:
System.out.println(doc.getElementById("sizeX"));

Ich habe gelesen, dass man da irgendwie Java sagen muss, was jetzt
die wirkliche ID ist. Wie genau funktioniert das?
 

Kenan89

Bekanntes Mitglied
Ich bin etwas weiter gekommen und habe gelernt, dass man eine dtd-Datei benötigt.
Diese habe ich erstellt, kann aber den Fehler nicht finden:

.dtd-Datei
Java:
<!ELEMENT level (info, tile*)>

<!ELEMENT info (EMPTY)>
	<!ATTLIST info id 			ID 			#REQUIRED>
	<!ATTLIST info sizeX 		CDATA 		#REQUIRED>
	<!ATTLIST info sizeY 		CDATA 		#REQUIRED>
	<!ATTLIST info lvlName 		CDATA 		#REQUIRED>
	<!ATTLIST info tilesetName 	CDATA 		#REQUIRED>
	
<!ELEMENT tile (EMPTY)>
	<!ATTLIST tile id			ID 			#REQUIRED>
	<!ATTLIST tile tileID		CDATA 		#REQUIRED>
	<!ATTLIST tile x 			CDATA 		#REQUIRED>
	<!ATTLIST tile y 			CDATA 		#REQUIRED>
	<!ATTLIST tile layer 		CDATA 		#REQUIRED>
	<!ATTLIST tile passable 	CDATA 		#REQUIRED>

XML-Datei
Java:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE level SYSTEM "lvl.dtd">

<level>
	
	<info id="info" sizeX="320" sizeY="320" lvlName="testlevel" tilesetName="tileset1.png" />
	
	<tile id="0"	tileID="0" 		x="0" 		y="0"	 	layer="0" 	passable="0" />
	<tile id="1" 	tileID="2" 		x="32" 		y="0" 		layer="0" 	passable="0" />
	<tile id="2"	tileID="1"	 	x="64" 		y="0" 		layer="0" 	passable="0" />
	<tile id="3" 	tileID="1" 		x="96" 		y="0" 		layer="0" 	passable="0" />
	<tile id="4" 	tileID="2" 		x="128" 	y="0" 		layer="0" 	passable="0" />
	<tile id="5" 	tileID="1" 		x="160" 	y="0" 		layer="0" 	passable="0" />
	<tile id="6"	tileID="1" 		x="192" 	y="0" 		layer="0" 	passable="0" />
	<tile id="7" 	tileID="1" 		x="224" 	y="0" 		layer="0" 	passable="0" />
</level>

In Eclipse kriege ich die Fehlermeldung: Multiple annotations found at this line:
- The content of element type "tile" is incomplete, it must
match "(EMPTY)".
- The content of element type "info" is incomplete, it
must match "(EMPTY)".
 

jstei001

Aktives Mitglied
Ich hab hier ein Beispiel vllt hilft das ja:
XML-File
Java:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map [ <!ELEMENT map (entry*) >
                <!ELEMENT entry EMPTY >
                <!ATTLIST entry key   ID    #REQUIRED
                                value CDATA "mydefault"> ]>
<map>
    <entry key="key1" value="value1"/>
    <entry key="key2" />
</map>

Methode zum XML auslesen
Java:
public static Document parseXmlFile(String filename, boolean validating) {
        try {
            // Create a builder factory
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setValidating(validating);

            // Create the builder and parse the file
            Document doc = factory.newDocumentBuilder().parse(new File(filename));
            return doc;
        } catch (SAXException e) {
            // A parsing error occurred; the xml input is not valid
        } catch (ParserConfigurationException e) {
        } catch (IOException e) {
        }
        return null;
    }


Main Methode:
Java:
public static void main(String[] args) throws Exception {
Document doc = parseXmlFile("externeFiles/test.xml", true);

		// Retrieve the element using id
		Element element = doc.getElementById("key1");

		System.out.println(element.getAttribute("value"));
}

EDIT: Als Alternative kannst du die Daten auch über ein .property File einlesen, da kommt es halt drauf an wie groß dein Spiel wird.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JSON auslesen und Labels in GUI verwenden XML & JSON 13
M json page 2 auslesen XML & JSON 1
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
Kanda Sorata Eingabefelder von Excel Dateien auslesen XML & JSON 1
K XML vernünftig auslesen XML & JSON 9
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
H SOAPBody auslesen XML & JSON 0
B XML auslesen, benötige Hilfe XML & JSON 13
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
W XML einlesen und Attribute auslesen XML & JSON 1
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
M Json auslesen XML & JSON 7
K XML Auslesen, wie abspeichern? XML & JSON 32
D Attribute aus XML Auslesen XML & JSON 5
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
R Apache POI: Gezieltes Auslesen von Zellen XML & JSON 2
S XMl auslesen:@ output ? XML & JSON 1
Z Verschachtelte XML auslesen XML & JSON 3
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
C XPath: Alle Kinder in einer Schleife auslesen XML & JSON 2
I XML IDs auslesen, erst X dann Y XML & JSON 2
S XML - rekursives auslesen - Zeilenumbruch als NodeValue? XML & JSON 3
O XML richtig auslesen XML & JSON 7
J Excel zeilenweise auslesen - POI XML & JSON 5
J Excel Zellen auslesen - automatischer Stopp bei leerer Zelle XML & JSON 2
I XPath Namensräume und auslesen einzelner Knoten XML & JSON 3
S SVG auslesen und darstellen XML & JSON 5
G xpath: in Kindelement zwei Attribut-Werte auslesen XML & JSON 2
G xpath: Inhalt eines Kindelements auslesen XML & JSON 2
1 Html tabelle auslesen??? XML & JSON 6
JanUlrich Tabelle auslesen XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
J Anzahl der Elemente in einem XML-Dokument auslesen XML & JSON 7
K XMl auslesen XML & JSON 19
P Poi /XSSF : Excel-Tabelle auslesen XML & JSON 2
S XSD-Datei zulässige Werte auslesen XML & JSON 3
D rss auslesen XML & JSON 2
S Attribute von Elementen auslesen mit XPath XML & JSON 2
M Große Datei auslesen/in dieser suchen XML & JSON 2
M RSS-Datei auslesen von Yahoo Webservice XML & JSON 4
N Google Wetter XML (nur current_condition) auslesen mit Java XML & JSON 15
J Dateinamen beim Start auslesen XML & JSON 8
eQuest XML Jaxen Attribute auslesen XML & JSON 2
E XML Datei mit DOM auslesen (Text mit Attributen) XML & JSON 2
P jdom XML-Encoding auslesen XML & JSON 12
H XML Attribute auslesen XML & JSON 5
Nicer Bestimmten Wert aus einer XML Auslesen XML & JSON 34
L XML Daten auslesen und in Tabelle (Array) speichern XML & JSON 1
L XML Dokument auslesen funktioniert nicht richtig XML & JSON 2
C Attributwert aus XML auslesen XML & JSON 10
H XML String auslesen XML & JSON 4
E XML Knoten mit rekursiver Methode auslesen XML & JSON 3
S Dom Baum auslesen XML & JSON 12
J Properties auslesen (Jar) XML & JSON 1
S auslesen XML & JSON 9
Z XML auslesen, Elemente daraus entfernen und als neue XML zurückgeben XML & JSON 2
M XMI-Datei auslesen XML & JSON 4
T EXSD auslesen mit XPath und JDOM XML & JSON 8
M XML-Datum als Referenz auf Objekt-Variable auslesen XML & JSON 5
Spot84 xmi auslesen XML & JSON 20
G Welche Klassen zum erzeugen/auslesen eines XML Files verwend XML & JSON 9
G Xml File schematisch auslesen XML & JSON 2
P NullPointerException beim Auslesen XML & JSON 8
N XML-String in MIDP auslesen XML & JSON 3
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
K XML auslesen (simpel) XML & JSON 10
X XML File auslesen/parsen u. in ne Hashmap speichern XML & JSON 2
HeRaider Definitionen auslesen und Encoding XML & JSON 3
A SVG Datei auslesen und Batik XML & JSON 1
M XML werte auslesen ! XML & JSON 3
M XML File während Applet-Start auslesen? XML & JSON 10
L SAXReader , auslesen bis zum bestimmten knoten! XML & JSON 3
W XML DomDocument als String auslesen XML & JSON 2
T XML mit JDOM auslesen => langsam? XML & JSON 7
N XML Datei auslesen / Validierung XML & JSON 4
G einzelne tags mit jdom auslesen XML & JSON 4
F XML mit JDOM auslesen XML & JSON 2
N bestimmtes Element auslesen - ich verzweifel XML & JSON 3
A XML-File auslesen, alles leer? XML & JSON 2
H Elemente eines Node auslesen XML & JSON 2
H Xpath kindelemente auslesen XML & JSON 2
P [Solved] XSL: Element-Variable auslesen XML & JSON 2
A Internetinhalte auslesen und in einem XML-File speichern XML & JSON 4
A Auslesen einer XML Datei XML & JSON 58
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
M Aus DTD's Klassen auslesen XML & JSON 2
M *.group() in File auslesen XML & JSON 4
T Einfach nur die Elemente einer XML Datei auslesen :( XML & JSON 10
R Problem beim Auslesen von Attributen XML & JSON 4
G Aus XML-Datei auslesen und als Java-Dialog ausgeben XML & JSON 3
D Eingehende XML Files Auslesen XML & JSON 3
T Prob: Auslesen XML File mit JDOM XML & JSON 2
W XML-Document auslesen XML & JSON 2
T Mehrere gleichnamige Unterelemente auslesen XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben