JAXP Usage

Here is a simple quick start for getting up and running with JSpiff and JAXP quickly. An JUnit Test Example is also included in the distribution to show you how easy it is to use JSpiff with JAXP.

Creating new XSPF Playlist

Create a new XspfPlaylist object and add tracks to it.

final XspfPlaylist playlist = new XspfPlaylist();
playlist.setTitle("Track Test Playlist");
playlist.setCreator("Melloware User");
playlist.setDate(new Timestamp(System.currentTimeMillis()));
playlist.setInfo("http://melloware.com/");
playlist.setVersion("1");
playlist.setImage("http://melloware.com/images/header.jpg");
playlist.setIdentifier(Integer.toString(super.hashCode()));
playlist.setLicense("http://www.apache.org/licenses/LICENSE-2.0.txt");

// create track list first
final XspfPlaylistTrackList tracks = new XspfPlaylistTrackList();

// now create track 1 and add to list
XspfTrack track = new XspfTrack();
track.setIdentifier("135c3af5-526f-4d87-9757-1b404b51e31d");
track.setLocation("C:\\music\\01 - She Talks To Angels.mp3");
track.setCreator("Black Crowes");
track.setAlbum("Shake Your Moneymaker");
track.setTitle("She Talks To Angels");
track.setAnnotation("This is a classic song");
track.setTrackNumByString("01");
track.setDurationByString("314");
tracks.addTrack(track);

// now create track 2 and add to list
track = new XspfTrack();
track.setIdentifier("e113c56f-c4d4-4bfb-b9f0-6f90a172b5a9");
track.setLocation("C:\\music\\02 - Come Together.mp3");
track.setCreator("Beatles");
track.setAlbum("Abbey Road");
track.setTitle("Come Together");
track.setAnnotation("Love the Beatles");
track.setTrackNumByString("02");
track.setDurationByString("226");
tracks.addTrack(track);

// add track to playlist
playlist.setPlaylistTrackList(tracks);

           

Loading an XSPF playlist from file

Create a new XspfPlaylist object by using one of the constructors that accepts a java.io.File or string URI etc.

// string location  
final XspfPlaylist playlist = new XspfPlaylist("playlist.xml);

//...or from stream
final InputStream stream = getClass().getResourceAsStream("/playlist-invalid.xml");
final XspfPlaylist playlist = new XspfPlaylist(stream);

//...or from java.io.File
final File file = new File("test.xml");
final XspfPlaylist playlist = new XspfPlaylist(file);

           

Saving an XSPF playlist to file

Use the makeDocument() method to create an XML representation of the playlist.

// make an xml document out of it
final String xml = playlist.makeTextDocument();
System.out.println(xml);

//...or use Dom4j to pretty print it
final File file = new File("test.xml");
final OutputFormat format = OutputFormat.createPrettyPrint();
final XMLWriter writer = new XMLWriter(new FileWriter(file), format);
final Document doc = DocumentHelper.parseText(playlist.makeTextDocument());
writer.write(doc);
writer.close();