У меня есть этот XML-документ, который имеет различное количество одноименных тегов. Как я могу получить количество дочерних элементов и значение этого.
<Question>
<QuestionText>ABC?</QuestionText>
<Option>A1 - XYZ</Option>
<Option>A2 - WXY</Option>
<Option>A2 - HJK</Option>
<ID>1</ID>
</Question>
<Question>
<QuestionText>ERY?</QuestionText>
<QuestionText>NNN?</QuestionText>
<QuestionText>KKKK?</QuestionText>
<ID>2</ID>
</Question>
Вывод должен читать ...
ID: 2 имеет 1 текст вопроса и 3 варианта
Вопрос Текст 1: Азбука? Вариант 1: А1 - XYZ
Вариант 2: A2 - WXY Вариант 3: A2 - HJK
ID: 1 имеет 3 типа вопроса и 0 опций
QuestionText 1.ERY?
QuestionText 2.NNN?
QuestionText 3.KKKK?
Я пытался, но это дает результаты ошибки
Element eElement = (Element) nNode;
for(int i=0;i<eElement.getChildNodes().getLength();i++){
System.out.println("NodeName:"+eElement.getNodeName());
System.out.println("Tag value:"+getTagValue("QuestionText",eElement));
System.out.println("Tag value:"+getTagValue("Option",eElement));
}
private static String getTagValue(String sTag, Element eElement){
NodeList nlList= eElement.getElementsByTagName(sTag).item(0).getChildNodes();
Node nValue = (Node) nlList.item(0);
return nValue.getNodeValue();
}
После некоторых исследований я нашел решение
Element eElement = (Element) nNode;
getTagValue("QuestionText",eElement);
getTagValue("Option",eElement);
private static void getTagValue(String sTag, Element eElement){
NodeList nlList = eElement.getElementsByTagName(sTag);
System.out.println("Size of nodelist:"+nlList.getLength());
for(int i=0;i<nlList.getLength();i++){
NodeList kList= eElement.getElementsByTagName(sTag).item(i).getChildNodes();
Node kValue = (Node) kList.item(0);
System.out.println("Node Value:"+kValue.getNodeValue());
}
}