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:
Die DTD:
Und das ist der restliche Code:
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
.Ist die letzte von 12 Praktikumsaufgaben, alle anderen habe ich schon eingereicht .
Würde mich also massig über Hilfe freuen!!!
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);
}
}
}
Würde mich also massig über Hilfe freuen!!!
Zuletzt bearbeitet von einem Moderator: