Wyświetlanie zawartości elementu

0

Witam,
chciałem napisać prosty program, który wyświetla podelementy danego elementu XML. Mam taki XML:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE fiszki [
<!ELEMENT fiszki (fiszka)*>
<!ELEMENT fiszka (type, name)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ATTLIST fiszka id ID #IMPLIED>
]>

<fiszki>
	<fiszka id="a1">
		<type>fdsfasfas</type>
		<name>bbbbbb</name>
                <name2>cccc</name>
	</fiszka>
	<fiszka id="a2">
		<type>Tekst 2...</type>
		<name>bbbbbb</name>
                <name2>cccc</name>
	</fiszka>	
</fiszki>

Chce napisac metodę, która przyjmne dwa argumenty: nazwe dokumentu oraz id. W przypadku podania id elementu fiszka np "a1" zostanie wyświetlona zawartość:
fdsfasfas
bbbbbb
cccc.

Kombinuje już 3 dni, niestety nie działa tak jakbym tego chciał. Mam coś takiego:

	public static void test(Document doc, String idName) {
		String x = doc.getElementById(idName).getChildNodes().toString();
		System.out.println(x);
	}	

Zwraca jednak:
[fiszka: null]

Byłbym wdzięczny za pomoc.
Pozdrawiam.

1

Do pobrania wartości elementu służy metoda getNodeValue().

Musisz pobrać szukany element, następnie pobrać wszystkie jego dzieci i dla każdego iteracyjnie wypisać wartość elementu dziecka.

Tak z nudów:

public static void test(Document doc, String idName) {
        NodeList nodeList = doc.getElementById(idName).getChildNodes();
        for(int i=0; i < nodeList.getLength(); i++) {
        	Node childNode = nodeList.item(i);
        	if(childNode instanceof Element) {
        		Element childElement = (Element)childNode;
        		System.out.println(childElement.getChildNodes().item(0).getNodeValue());
        	}
        }
} 

1 użytkowników online, w tym zalogowanych: 0, gości: 1