|
From: HARUYAMA S. <har...@qu...> - 2002-12-11 11:03:33
|
Message-ID:<m3o...@ho...> Subject:[Coderidge-devel-ja] Freshmeat にて HARUYAMA Seigo <har...@qu...> は書きました。 春山> Freahmeatは 春山> http://freshmeat.net/projects-xml/{projectname_short}/{projectname_short}.xml 春山> (例: 春山> http://freshmeat.net/projects-xml/nut/nut.xml 春山> http://freshmeat.net/projects-xml/fw/fw.xml 春山> ) CodeRidge RDFもどきにする XSLTを書いてみました。 XSLTは使ったことがなかったので、汚ないかもしれません。 (xalan-j 2.4.1 を利用しましたが、elementの動的な名前付けが うまくいきませんでした) ---------- <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:core="http://coderidge.org/schemas/core/1.0#" version="1.0"> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" encoding="UTF-8"/> <xsl:template match="project-listing"> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:core='http://coderidge.org/schemas/core/1.0#'> <xsl:apply-templates select="project"/> </rdf:RDF> </xsl:template> <xsl:template match="project"> <rdf:Description> <xsl:attribute name="about">http://freshmeat.net/projects-xml/<xsl:value-of select="projectname_short"/>/<xsl:value-of select="projectname_short"/>.xml</xsl:attribute> <xsl:apply-templates select="*"/> </rdf:Description> </xsl:template> <xsl:template match="*"> <xsl:choose> <xsl:when test="name(.)='project_id'"></xsl:when> <xsl:when test="name(.)='projectname_full'"> <xsl:element name="core:Name"> <xsl:value-of select="."/> </xsl:element> </xsl:when> <xsl:when test="name(.)='license'"> <xsl:element name="core:License"> <xsl:value-of select="."/> </xsl:element> </xsl:when> <xsl:when test="name(.)='url_homepage'"> <xsl:element name="core:Homepage"> <xsl:value-of select="."/> </xsl:element> </xsl:when> <xsl:when test="name(.)='desc_full'"> <xsl:element name="core:Description"> <xsl:value-of select="."/> </xsl:element> </xsl:when> <xsl:when test=".=''"></xsl:when> <xsl:otherwise> <!-- <xsl:element name="name(.)"/> --> <xsl:text disable-output-escaping="yes"> <core:</xsl:text><xsl:value-of select="name(.)"/><xsl:text disable-output-escaping="yes">></xsl:text><xsl:value-of select="."/> <xsl:text disable-output-escaping="yes"></core:</xsl:text><xsl:value-of select="name(.)"/><xsl:text disable-output-escaping="yes">></xsl:text> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> ---------- これで たとえば http://freshmeat.net/projects-xml/fmnews/fmnews.xml を変換すると ---------- <rdf:RDF xmlns:core="http://coderidge.org/schemas/core/1.0#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://freshmeat.net/projects-xml/fmnews/fmnews.xml"> <core:date_added>2002-12-10 20:46:31</core:date_added> <core:date_updated>2002-12-10 21:47:08</core:date_updated> <core:projectname_short>fmnews</core:projectname_short><core:Name>fmnews</core:Name> <core:desc_short>Grabs news from freshmeat's backend storage.</core:desc_short><core:Description>fmnews grabs news from freshmeat's backend storage and displays it with ANSI colors.</core:Description> <core:vitality_score>0.00</core:vitality_score> <core:vitality_percent>0.00</core:vitality_percent> <core:popularity_score>0.00</core:popularity_score> <core:popularity_percent>0.00</core:popularity_percent> <core:rating>0.00</core:rating> <core:rating_count>0</core:rating_count> <core:subscriptions>0</core:subscriptions> <core:branch_name>Default</core:branch_name><core:Homepage>http://freshmeat.net/redir/fmnews/35404/url_homepage/</core:Homepage> <core:url_tgz>http://freshmeat.net/redir/fmnews/35404/url_tgz/</core:url_tgz><core:License>Free for non-commercial use</core:License> <core:latest_version>1.0</core:latest_version></rdf:Description> </rdf:RDF> ---------- となります。 -- 春山 征吾 / HARUYAMA Seigo har...@un... har...@qu... |