Leitura XML

Ola pessoal meu problema é o seguinte…
estou tentando ler um xml, soh que nao estou conseguindo buscar todos seus atributos e valores…

<questionnaire> <term id="108" name="access"> <question number="140"> <qtext term_occurs="true"><![CDATA[Are proper access controls to information clearly defined, implemented and verified that they will work as defined?]]></qtext> <answer term_occurs="false"><![CDATA[Yes, Planned, No, Not Sure]]></answer> </question> <question number="153"> <qtext term_occurs="true"><![CDATA[If internet access will not be available at the event, will there be a a printed copy of the HP Online Privacy Statement available?]]></qtext> <answer term_occurs="false"><![CDATA[Yes, No, Not Sure]]></answer> </question> <question number="168"> <qtext term_occurs="true"><![CDATA[Will any Logical HP vendors involved with the tradeshow or event have access to the personal information of event registrants and/or attendees?]]></qtext> <answer term_occurs="false"><![CDATA[Yes, No, Not Sure]]></answer> </question> </term> </questionnaire>

Essa aqui é classe principal para mim ler esse xml

[code]import java.util.ArrayList;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import java.io.*;

public class LerXmlQuestionnaire {

@SuppressWarnings("unchecked")
public static void main(String args[]) throws JDOMException, IOException{
	Document doc = null;
	SAXBuilder builder = new SAXBuilder();
	ArrayList<TermQuestion> questionn = new ArrayList<TermQuestion>();
	TermQuestion  quest= null;
	try {
		doc = builder.build("C:\Users\MARIO\Desktop\xml_files\Questionnaire.xml");
		
	} catch (FileNotFoundException ex) {
		ex.getMessage();
	}
	Element questionnaire = doc.getRootElement();
	List<Element> lista = questionnaire.getChildren();

	
	for (Element e : lista) {

		if(e.getAttributeValue("id").equalsIgnoreCase(""+108)){
			
			
			
			
			System.out.println(e.getChild("question").getChild("qtext").getText());
			System.out.println(e.getChild("question").getChild("answer").getText());
			
			
			
			
				/*System.out.println(e.getChild("question").getAttributeValue("number"));
				System.out.println(e.getChild("question").getChild("qtext").getText());
				System.out.println(e.getChild("question").getChild("answer").getText());*/
			
			
				quest = new TermQuestion();
				quest.setIdPergunta(e.getChild("question").getAttributeValue("number"));
				quest.addPergunta(e.getChildText("qtext"));
				quest.addResposta(e.getChildText("answer"));
				questionn.add(quest);	
		}
		
	}

// return questionn;
}
}[/code]

E essa é uma classe auxiliar para guardar os valores

import java.util.*;

public class TermQuestion {
	

	private String idPergunta;
	private ArrayList<String> pergunta;
	private ArrayList<String> resposta;
	

	public TermQuestion(String idPergunta){
		
		this.idPergunta = idPergunta;
	}
	public TermQuestion(){
	
	}
	public ArrayList<String> getPergunta() {
		return pergunta;
	}

	public void addPergunta(String perg) {
		this.pergunta.add(perg);
	}

	public ArrayList<String> getResposta() {
		return resposta;
	}

	public void addResposta(String resp) {
		this.resposta.add(resp);
	}
	
	public String getIdPergunta() {
		return idPergunta;
	}

	public void setIdPergunta(String idPergunta) {
		this.idPergunta = idPergunta;
	}
	public String toString(){
		return "";
	}
}

Abraço!

Alguem?