|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.xml.sax.helpers.XMLFilterImpl | +--org.esau.ptarmigan.impl.filter.BaseFilter | +--org.esau.ptarmigan.impl.filter.PlaylistFilter | +--org.esau.ptarmigan.impl.filter.XMLPlaylistFilter | +--org.esau.ptarmigan.impl.filter.ASXFilter
ASXFilter -- transforms ASX playlist to ptarmigan playlist
Example source:
<ASX version="3.0"> <ABSTRACT>This is a sample asx file used as playlist</ABSTRACT> <TITLE>Windows Media Playlist Demo</TITLE> <AUTHOR>Reed Esau</AUTHOR> <COPYRIGHT>2002 Reed Esau</COPYRIGHT> <ENTRY> <REF href="File1.asf" /> <ABSTRACT>Link to a local file on the same folder</ABSTRACT> </ENTRY> <ENTRY> <REF href="mms://media.phm.lu/File2.asf" /> <ABSTRACT>a file streamed from a media server on the network</ABSTRACT> </ENTRY> <ENTRY> <REF href="File3.mp3" /> <ABSTRACT>ASX can support any file type supported by WMP</ABSTRACT> </ENTRY> <ENTRY> <REF href="File4.avi" /> <ABSTRACT>you can even mix audio files and video files in the same ASX</ABSTRACT> </ENTRY> </ASX>The equivalent XSLT would appear thus:
<xsl:template match="/ASX"> <pl:playlist> <pl:properties> <pl:title><xsl:value-of select='TITLE'/></pl:title> <pl:author><xsl:value-of select='AUTHOR'/></pl:author> <pl:copyright><xsl:value-of select='COPYRIGHT'/></pl:copyright> <pl:summary><xsl:value-of select='ABSTRACT'/></pl:summary> <pl:entry-count><xsl:value-of select='count(ENTRY)'/></pl:entry-count> </pl:properties> <xsl:if test="$include_entries = 'true'"> <xsl:apply-templates select="ENTRY"/> </xsl:if> </pl:playlist> </xsl:template> <xsl:template match="ENTRY"> <pl:entry> <pl:path><xsl:value-of select='REF/@href'/></pl:path> <pl:title><xsl:value-of select='ABSTRACT'/></pl:title> </pl:entry> </xsl:template>TODO: recursively scan all playlists found.
Constructor Summary | |
ASXFilter()
|
Method Summary | |
void |
endElement(java.lang.String uri,
java.lang.String local_name,
java.lang.String qName)
Filter an end element event. |
boolean |
isMatch(java.lang.String sniff_chars)
is the text file an XML file with that dodgy ASX marker? Note: ASX files may not start with " |
void |
startElement(java.lang.String uri,
java.lang.String local_name,
java.lang.String qName,
org.xml.sax.Attributes atts)
Filter a start element event. |
Methods inherited from class org.esau.ptarmigan.impl.filter.XMLPlaylistFilter |
endDocument, startDocument |
Methods inherited from class org.esau.ptarmigan.impl.filter.PlaylistFilter |
getIncludeEntries, resetData, setBaseDir, setIncludeEntries |
Methods inherited from class org.esau.ptarmigan.impl.filter.BaseFilter |
characters, getMediaProperties, parse, setMediaProperties |
Methods inherited from class org.xml.sax.helpers.XMLFilterImpl |
endPrefixMapping, error, fatalError, getContentHandler, getDTDHandler, getEntityResolver, getErrorHandler, getFeature, getParent, getProperty, ignorableWhitespace, notationDecl, parse, processingInstruction, resolveEntity, setContentHandler, setDocumentLocator, setDTDHandler, setEntityResolver, setErrorHandler, setFeature, setParent, setProperty, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ASXFilter() throws org.xml.sax.SAXException
Method Detail |
public boolean isMatch(java.lang.String sniff_chars)
isMatch
in class PlaylistFilter
public void startElement(java.lang.String uri, java.lang.String local_name, java.lang.String qName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException
startElement
in class org.xml.sax.helpers.XMLFilterImpl
public void endElement(java.lang.String uri, java.lang.String local_name, java.lang.String qName) throws org.xml.sax.SAXException
endElement
in class org.xml.sax.helpers.XMLFilterImpl
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |