learn to use XStream
APIs XStream (http://xstream.codehaus.org/) very well solve the typical problem to take charge of an XML stream to use it all ' inside of our application.
Let's dissect a sample that I found myself manage to manipulate an RSS feed recovered the ActiveMQ web console (http://activemq.apache.org/).
The RSS feed input was structured as follows:
rss channel
title description link
items
item title link
description
pubDate
guid
dc:date
/item
..
item
title
link
guid pubDate description
dc: date
/
item / items
/ channel
/ rss xml
This particular stream was made available within the My Java Web Application with these simple lines of configuration object XStream: XStream XStream
= new XStream ();
xstream.alias ("rss" AMQ5RssFeed.class)
xstream.alias ("channel", AMQ5RssChannel. class);
xstream.alias ("item", AMQ5RssItem.class)
XStream. addImplicitCollection (AMQ5RssChannel.class, "items");
XStream. aliasField ("dc: date", AMQ5RssItem.class, "dcDate");
The last two lines are particularly interesting because it allows me to exclude the tag "items" which basically has the sole purpose of holding the item (with addImplicitCollection) and assign an alias to convert the strange tag "dc: date" using a standard java-like (with aliasField).
Finally here is the details of my POJO container 3 classes: public class
AMQ5RssFeed {
AMQ5RssChannel public channel;
public AMQ5RssChannel getChannel () {return channel
;
} public void setChannel (AMQ5RssChannel channel) {
this.channel = channel;
}
}
public class AMQ5RssChannel {
public String title, link, description;
public List items;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List getItems() {
return items;
}
public void addItem(AMQ5RssItem item) {
this.items.add(item);
}
}
public class AMQ5RssItem {
public String title, link, description, pubDate, guid, dcDate;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPubDate() {
return pubDate;
}
public void setPubDate(String pubDate) {
this.pubDate = pubDate;
}
public String getGuid() {
return guid;
}
public void setGuid(String guid) {
this.guid = guid;}
getDcDate public String () {
dcDate return;}
public void setDcDate (String dcDate) = {
this.dcDate dcDate;
}} I guess that's all!
the next.
0 comments:
Post a Comment