In this tutorial we are going to see about how to write XML document using Java StAX parser Cursor API.
Player.java
Player.java
01.
package
com.javatutorialcorner.stax;
02.
03.
public
class
Player {
04.
private
int
rank;
05.
private
String name;
06.
private
String team;
07.
private
int
matches;
08.
private
int
runs;
09.
private
int
ratings;
10.
11.
public
int
getRank() {
12.
return
rank;
13.
}
14.
public
void
setRank(
int
rank) {
15.
this
.rank = rank;
16.
}
17.
public
String getName() {
18.
return
name;
19.
}
20.
public
void
setName(String name) {
21.
this
.name = name;
22.
}
23.
public
String getTeam() {
24.
return
team;
25.
}
26.
public
void
setTeam(String team) {
27.
this
.team = team;
28.
}
29.
public
int
getMatches() {
30.
return
matches;
31.
}
32.
public
void
setMatches(
int
matches) {
33.
this
.matches = matches;
34.
}
35.
public
int
getRuns() {
36.
return
runs;
37.
}
38.
public
void
setRuns(
int
runs) {
39.
this
.runs = runs;
40.
}
41.
public
int
getRatings() {
42.
return
ratings;
43.
}
44.
public
void
setRatings(
int
ratings) {
45.
this
.ratings = ratings;
46.
}
47.
48.
49.
50.
}
StAXCursorWriteExample.java
001.
package
com.javatutorialcorner.stax;
002.
003.
import
java.io.FileNotFoundException;
004.
import
java.io.FileOutputStream;
005.
import
java.util.HashMap;
006.
import
java.util.Map;
007.
008.
import
javax.xml.stream.XMLOutputFactory;
009.
import
javax.xml.stream.XMLStreamException;
010.
import
javax.xml.stream.XMLStreamWriter;
011.
012.
public
class
StAXCursorWriteExample {
013.
014.
public
static
void
main(String[] args) {
015.
String filePath =
"C:/jtc/cricket1.xml"
;
016.
Map<String,Player> elementsMap =
new
HashMap<String,Player>();
017.
Player player1 =
new
Player();
018.
player1.setName(
"AB de Villiers"
);
019.
player1.setRank(
1
);
020.
player1.setRatings(
898
);
021.
player1.setMatches(
184
);
022.
player1.setRuns(
7777
);
023.
elementsMap.put(
"player1"
, player1);
024.
025.
Player player2 =
new
Player();
026.
player2.setName(
"Hashim Amla"
);
027.
player2.setRank(
2
);
028.
player2.setRatings(
849
);
029.
player2.setMatches(
112
);
030.
player2.setRuns(
5654
);
031.
elementsMap.put(
"player2"
, player2);
032.
033.
Player player3 =
new
Player();
034.
player3.setName(
"Kumar Sangakkara"
);
035.
player3.setRank(
3
);
036.
player3.setRatings(
849
);
037.
player3.setMatches(
401
);
038.
player3.setRuns(
13961
);
039.
elementsMap.put(
"player3"
, player3);
040.
041.
Player player4 =
new
Player();
042.
player4.setName(
"Virat Kohli"
);
043.
player4.setRank(
4
);
044.
player4.setRatings(
847
);
045.
player4.setMatches(
154
);
046.
player4.setRuns(
6451
);
047.
elementsMap.put(
"player4"
, player4);
048.
049.
writeXML(filePath,elementsMap);
050.
}
051.
052.
private
static
void
writeXML(String filePath, Map<String,Player> elementsMap) {
053.
XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();
054.
try
{
055.
XMLStreamWriter xmlStreamWriter = xmlOutputFactory.createXMLStreamWriter(
new
FileOutputStream(filePath),
"UTF-8"
);
056.
xmlStreamWriter.writeStartDocument(
"UTF-8"
,
"1.0"
);
057.
xmlStreamWriter.writeCharacters(
"\n"
);
058.
xmlStreamWriter.writeStartElement(
"Players"
);
059.
for
(Map.Entry<String,Player> entry : elementsMap.entrySet()){
060.
Player player = entry.getValue();
061.
xmlStreamWriter.writeCharacters(
"\n\t"
);
062.
xmlStreamWriter.writeStartElement(
"Player"
);
063.
xmlStreamWriter.writeAttribute(
"rank"
, String.valueOf(player.getRank()));
064.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
065.
xmlStreamWriter.writeStartElement(
"Name"
);
066.
xmlStreamWriter.writeCharacters(player.getName());
067.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
068.
xmlStreamWriter.writeEndElement();
069.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
070.
xmlStreamWriter.writeStartElement(
"Team"
);
071.
xmlStreamWriter.writeCharacters(player.getTeam());
072.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
073.
xmlStreamWriter.writeEndElement();
074.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
075.
xmlStreamWriter.writeStartElement(
"Rating"
);
076.
xmlStreamWriter.writeCharacters(String.valueOf(player.getRatings()));
077.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
078.
xmlStreamWriter.writeEndElement();
079.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
080.
xmlStreamWriter.writeStartElement(
"Matches"
);
081.
xmlStreamWriter.writeCharacters(String.valueOf(player.getMatches()));
082.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
083.
xmlStreamWriter.writeEndElement();
084.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
085.
xmlStreamWriter.writeStartElement(
"Runs"
);
086.
xmlStreamWriter.writeCharacters(String.valueOf(player.getRuns()));
087.
xmlStreamWriter.writeCharacters(
"\n\t\t"
);
088.
xmlStreamWriter.writeEndElement();
089.
xmlStreamWriter.writeCharacters(
"\n\t"
);
090.
xmlStreamWriter.writeEndElement();
091.
}
092.
xmlStreamWriter.writeCharacters(
"\n"
);
093.
xmlStreamWriter.writeEndDocument();
094.
xmlStreamWriter.flush();
095.
xmlStreamWriter.close();
096.
}
catch
(FileNotFoundException | XMLStreamException e) {
097.
e.printStackTrace();
098.
}
099.
100.
}
101.
102.
}
Output
Here is output XML file
Cricket1.xml
01.
<
players
>
02.
<
player
rank
=
"1"
>
03.
<
name
>AB de Villiers
04.
</
name
>
05.
<
team
>
06.
</
team
>
07.
<
rating
>898
08.
</
rating
>
09.
<
matches
>184
10.
</
matches
>
11.
<
runs
>7777
12.
</
runs
>
13.
</
player
>
14.
<
player
rank
=
"2"
>
15.
<
name
>Hashim Amla
16.
</
name
>
17.
<
team
>
18.
</
team
>
19.
<
rating
>849
20.
</
rating
>
21.
<
matches
>112
22.
</
matches
>
23.
<
runs
>5654
24.
</
runs
>
25.
</
player
>
26.
<
player
rank
=
"3"
>
27.
<
name
>Kumar Sangakkara
28.
</
name
>
29.
<
team
>
30.
</
team
>
31.
<
rating
>849
32.
</
rating
>
33.
<
matches
>401
34.
</
matches
>
35.
<
runs
>13961
36.
</
runs
>
37.
</
player
>
38.
<
player
rank
=
"4"
>
39.
<
name
>Virat Kohli
40.
</
name
>
41.
<
team
>
42.
</
team
>
43.
<
rating
>847
44.
</
rating
>
45.
<
matches
>154
46.
</
matches
>
47.
<
runs
>6451
48.
</
runs
>
49.
</
player
></
players
>
0 comments:
Post a Comment