NodeList rückwärts scannen, alle Parent Nodes ausgeben rekursiv und nicht-reukrsiv

S

sehams

Gast
Hallo

Wie der Titel schon sagt soll ich eine NodeList von einem bestimmten Eintrag aus mit all ihren ParentNodes ausgeben. Doch leider stehe ich hierbei auf dem Schlauch:

Die XML:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Fahrtenbuch SYSTEM 'x.dtd'>

<Zoo>
	<areal name="asien">
		<tier id="t1" name="Karl" pfleger="p1" />
		<tier id="t2" name="Nico" pfleger="p2" />
		<tier id="t3" name="Berta" pfleger="p3" />
		<tierpfleger id="p1" name="Schmusi"/>
		<tierpfleger id="p2" name="Hasi"/>
		<tierpfleger id="p3" name="Schnuffi"/>
	</areal>
</Zoo>

Die DTD:
Code:
<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT Zoo (areal+)>

<!ELEMENT areal (tier+)> 
	<!ATTLIST areal
		name CDATA #REQUIRED
	>
		
<!ELEMENT tier (pfleger)>
	<!ATTLIST tier
		 id ID #REQUIRED
		 name CDATA #REQUIRED
		 pfleger IDREF #REQUIRED
	>
		 
<!ELEMENT pfleger (tier)>
	<!ATTLIST pfleger
		id ID #REQUIRED
	>

Und das ist der restliche Code:
Code:
	// REKURSIV
	public static void rekursiv() {

		Node startknoten = d.getDocumentElement();
		NodeList nodeList = startknoten.getChildNodes();

		for (int i = nodeList.getLength(); i > 0; ++i) {
			Node currentNode = nodeList.item(i);
			
			if (currentNode.getNodeName().equals(knoten)) {
				Element e = (Element) currentNode;
				String id = e.getAttribute("id");
				System.out.println(id);
			
			findParentNode((Element) currentNode);
		}}
	}

	public static String findParentNode(Element currentNode) {
		while (currentNode.getParentNode() != null) {
			currentNode = (Element) currentNode.getParentNode();
			if (currentNode.getTagName() == knoten)
				System.out
						.println(((Element) currentNode).getAttribute("name"));
		}
		return null;
	}

	// NICHT REKURSIV
	public static void nichtRekursiv() throws SAXException, IOException,
			ParserConfigurationException {

		parse();
		Node startknoten = d.getDocumentElement();
		NodeList nodeList = startknoten.getChildNodes();

		for (int i = nodeList.getLength(); i > 0; i++) {			
			Node currentNode = nodeList.item(i);
			if (currentNode.getNodeName() == knoten) {
				System.out
						.println(((Element) currentNode).getAttribute("name"));
				do {
					System.out.println(((Element) currentNode)
							.getAttribute("name"));
					currentNode = currentNode.getParentNode();
				} while (currentNode.getParentNode() != null);
			}
		}
	}
Leider funktionieren keine der beiden Methoden und das ganze muss eigentlich bis 24:00 per mail an meinen Prof gehen, sonst bestehe ich das Praktikum nicht:oops:.Ist die letzte von 12 Praktikumsaufgaben, alle anderen habe ich schon eingereicht .
Würde mich also massig über Hilfe freuen!!!
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M [XSD-Definition] Eindeutige Daten in NodeList (Bereich) XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben