Subject: Re: [xsl] Looking for "real-world" XML documents From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 1 Nov 2014 03:44:06 -0000 |
On Fri, Oct 31, 2014 at 7:14 PM, Syd Bauman s.bauman@xxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Here is an extract from a stylesheet I wrote to do some crunching on > Senate votes for the 111th and 112th congress. (Don't know why I was > selecting only votes 100 to 200.) Suggested improvements welcome. The transformation below copies to the local file system (to the "CongressVotes" subdirectory of the directory that contains the stylesheet module) *all* votes from 1 to 500 of sessions 1 and 2 of congresses 111 and 112. I got: Congress 111, Session 1, votes: 396, lowest 1, highest 397 Congress 111, Session 2, votes: 297, lowest 2, highest 297 Congress 112, Session 1, votes: 234, lowest 2, highest 235 Congress 112, Session 2, votes: 249, lowest 2, highest 251 Here is the transformation: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:variable name="vBase" select="'http://www.senate.gov/legislative/LIS/roll_call_votes/vote'"/> <xsl:variable name="vDocUri" select= "string-join((tokenize(document-uri(document('')), '/') [not(position() = last())], 'CongressVotes'), '/')"/> <xsl:template match="/"> <xsl:variable name="vDoc" select="."/> <xsl:for-each select="111 to 112"> <xsl:variable name="vCongress" select="."/> <xsl:for-each select="1 to 2"> <xsl:variable name="vSession" select="."/> <xsl:for-each select="1 to 500"> <xsl:variable name="vVote" select="format-number(. cast as xs:integer, '00000') cast as xs:string"/> <xsl:variable name="vURI" select="concat($vBase,$vCongress,$vSession,'/vote_',$vCongress,'_',$vSession,'_',$vVote,'.xml')"/> <xsl:apply-templates select="$vDoc[doc-available($vURI)]" mode="copyDocument"> <xsl:with-param name="pUri" select="$vURI"/> <xsl:with-param name="pFilename" select="concat('vote_',$vCongress,'_',$vSession,'_',$vVote,'.xml')"/> </xsl:apply-templates> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:template> <xsl:template match="/" mode="copyDocument"> <xsl:param name="pUri"/> <xsl:param name="pFilename"/> <xsl:result-document href="{$vDocUri}/{$pFilename}"> <xsl:copy-of select="doc($pUri)"/> </xsl:result-document> </xsl:template> </xsl:stylesheet> -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- I finally figured out the only reason to be alive is to enjoy it.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Looking for "real-world" , Syd Bauman s.bauman@ | Thread | [xsl] [ANN] XML Prague 2015 - Call , Jirka Kosek jirka@xx |
Re: [xsl] Looking for "real-world" , Syd Bauman s.bauman@ | Date | |
Month |