我需要解析具有相同標記名稱的XML文檔。我給你這個代碼的樣本,看看有什麼我想要做的..使用DOM解析器解析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
我與循環嘗試,但它讓我對每所學校的所有類..
到目前爲止我的代碼:
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());
}
}
}
那麼你的代碼目前是什麼樣子? – JLRishe
順便說一句 - 你的XML存在錯誤,你的第二個學校名稱的結束標記仍然是錯誤的。 –
確定我加入我的代碼..(這就是我創建,但無論如何,我編輯的錯誤XML的一例) –