<?xml version = "1.0"?>
<class>
<student rollno = "393">
<firstname>dinkar</firstname>
<lastname>kad</lastname>
<nickname>dinkar</nickname>
<marks>85</marks>
</student>
<student rollno = "493">
<lastname>Gupta</lastname>
<nickname>vinni</nickname>
<marks>95</marks>
</student>
<student rollno = "593">
<firstname>jasvir</firstname>
<lastname>singn</lastname>
<nickname>jazz</nickname>
<marks>90</marks>
</student>
</class>
第二个student没有“firstname”标签
不需要自己写判断
再套一层即可
File inputFile = new File("input.xml");
SAXReader reader = new SAXReader();
Document document = reader.read(inputFile);
Element classElement = document.getRootElement();
// 第一种
classElement.elements().forEach(q->{
if (q.selectSingleNode("firstname") != null) {
System.out.println(q.selectSingleNode("firstname").getText());
}
});
// 第二种
document.selectNodes("/class/student").forEach(e->{
e.selectNodes("firstname").forEach(r->{
System.out.println(e.selectSingleNode("firstname").getText());
});
});
用list(elements、selectNodes)取节点,文本结果用
getText取结果
例如
l.selectNodes("detail").forEach(n->{
n.selectNodes("name").forEach(o->{
System.out.println(o.getText());
});
n.selectNodes("value").forEach(p->{
System.out.println(p.getText());
});
n.selectNodes("source").forEach(q->{
System.out.println(q.selectSingleNode("type").getText());
System.out.println(q.selectSingleNode("name").getText());
System.out.println(q.selectSingleNode("description").getText());
});