我有如下的XML文件:的Java查找並刪除子節點
<CourseList>
<Course>
<CourseName>CoreJava</CourseName>
<Teacher>Bui Duy Linh</Teacher>
<Duration>90 minutes</Duration>
<Student>
<StudentID>C001</StudentID>
<StudentName>Nam</StudentName>
<DateRegister>15/11/2016</DateRegister>
</Student>
<Student>
<StudentID>C002</StudentID>
<StudentName>Vi</StudentName>
<DateRegister>13/11/2016</DateRegister>
</Student>
</Course>
而且我想刪除ID爲C001的學生,但我的搜索功能似乎返回null
public static Node searchByID(String id, Document doc) {
try {
XPathFactory xpf = XPathFactory.newInstance();
XPath xp = xpf.newXPath();
NodeList list = (NodeList) xp.evaluate("CourseList/Course/Student/StudentID", doc, XPathConstants.NODESET);
for (int i = 0; i < list.getLength(); i++) {
String content = list.item(i).getTextContent();
if (content.equalsIgnoreCase(id)) {
Node p = list.item(i).getParentNode();
return p;
}
}
} catch (XPathExpressionException ex) {
Logger.getLogger(AssignmentXML.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
有沒有辦法解決它?我應該使用DOM嗎?感謝任何人的幫助
你調試代碼? –
是的,內容確實返回C001,並且我設置了id = C001,但由於某種原因它仍然返回null – user3676506
我試圖運行您的代碼。正確的結果(學生節點)已返回。我只在XML的末尾添加了「」。 – saka1029