Здравствуйте, взял пример вот
отсюда
Пытался сделать по примеру код разбора XML
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jdom2.Content;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.filter.ContentFilter;
import org.jdom2.filter.ElementFilter;
import org.jdom2.input.SAXBuilder;
public class DataXML {
public static void xxx(){
File file = new File("data.xml");
SAXBuilder parser = new SAXBuilder();
Document xmlDoc;
try {
xmlDoc = parser.build(file);
System.out.println("Headers");
List elements = xmlDoc.getRootElement().getContent(new ElementFilter("head"));
Iterator iteratir = elements.iterator();
while(iteratir.hasNext()){
Element head = (Element) iteratir.next();
String id = head.getAttributeValue("id");
String name = head.getAttributeValue("name");
String departament = head.getAttributeValue("departament");
System.out.println(id + ":" + name + " - " + departament);
}
System.out.println("Comments");
iteratir = xmlDoc.getDescendants(new ContentFilter(ContentFilter.COMMENT));
while(iteratir.hasNext()){
Content comment = (Content) iteratir.next();
System.out.println(comment.getParentElement().getName() + " : "+ comment.getValue());
}
} catch (JDOMException ex) {
Logger.getLogger(DataXML.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(DataXML.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Результат должен быть таким:
1.
2.
3.
4.
5.
6.
Heads:
1: Петров — IT
2: Sidorov S. — Sales
Comments:
head: Head of IT department
head: Head of Sales
А у меня почему то получается такой:
1.
2.
3.
4.
5.
6.
Headers
1:null - null
2:null - null
Comments
head : Head of IT department
head : Head of Sales
Почему приходит значение null? Может я что то сделал не так?
Вот сам XML файл:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?xml version="1.0" encoding="UTF-8"?>
<Head_list>
<head id="1">
<!--Head of IT department-->
<name>Petrov P.</name>
<department>IT</department>
</head>
<head id="2">
<!--Head of Sales-->
<name>Sidorov S.</name>
<department>Sales</department>
</head>
</Head_list>