同じタグ名を持つ XML ドキュメントを解析する必要があります。私がやりたいことを確認するために、このコードのサンプルを提供します。
<SystemData>
<SystemName>xmlexample</SystemName>
<Schools>
<School>
<SchoolName>SCHOOL1</SchoolName>
<Classes>
<Class>
<ClassName>ACLASS</ClassName>
</Class>
</Classes>
<Classes>
<Class>
<ClassName>BCLASS</ClassName>
</Class>
</Classes>
</School>
<School>
<SchoolName>SCHOOL2</SchoolName>
<Classes>
<Class>
<ClassName>CCLASS</ClassName>
</Class>
</Classes>
</School>
</Schools>
</SystemData>
私が望む結果は次のとおりです。
SCHOOL1
ACLASS
BCLASS
SCHOOL2
CCLASS
私はforループを試していますが、すべての学校のすべてのクラスで取得できます。
これまでの私のコード:
NodeList schoolist = doc.getElementsByTagName("School");
int num = schoolist.getLength();
for (int temp = 0; temp < num; temp++) {
Node nNode = schoolist.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) schoolist.item(temp);
Node schoolname = eElement.getFirstChild();
System.out.println("schoolname: " + eElement.getElementsByTagName("ClassName").item(0).getTextContent());
}
NodeList Classlist = doc.getElementsByTagName("Method");
int num1 = Classlist.getLength();
for (int i = 0; i < num1; i++) {
Node nNode1 = Classlist.item(i);
if (nNode1.getNodeType() == Node.ELEMENT_NODE) {
Element eElement1 = (Element) Classlist.item(i);
Node Classname = eElement1.getFirstChild();
System.out.println("Classname: " + eElement1.getElementsByTagName("ClassName").item(0).getTextContent());
}
}
}