turugina #7268(2008/08/20 04:17 GMT) [ XSLT ] Rating0/0=0.00
XSLTでも何とかできた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" > <xsl:output method="text" /> <xsl:variable name="gpl" as="xs:string" select="unparsed-text('http://www.gnu.org/licenses/gpl.txt')" /> <xsl:variable name="mid" as="element()"> <xsl:element name="root"> <xsl:for-each select="fn:tokenize($gpl, '\n')"> <xsl:element name="line"> <xsl:attribute name="no"> <xsl:value-of select="position()" /> </xsl:attribute> <xsl:for-each select="fn:tokenize(., '\W+')"> <xsl:element name="word"> <xsl:value-of select="fn:lower-case(.)" /> </xsl:element> </xsl:for-each> </xsl:element> </xsl:for-each> </xsl:element> </xsl:variable> <xsl:template match="/" > <xsl:for-each select="fn:distinct-values($mid//word/text())"> <xsl:sort data-type="text" /> <xsl:variable name="t" as="xs:string" select="." /> <xsl:value-of select="." /> <xsl:text> ... </xsl:text> <xsl:value-of select="fn:string-join($mid//line[word=$t]/@no, ',')" /> <xsl:text>
</xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Rating0/0=0.00-0+
[ reply ]
turugina
#7268()
[
XSLT
]
Rating0/0=0.00
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" > <xsl:output method="text" /> <xsl:variable name="gpl" as="xs:string" select="unparsed-text('http://www.gnu.org/licenses/gpl.txt')" /> <xsl:variable name="mid" as="element()"> <xsl:element name="root"> <xsl:for-each select="fn:tokenize($gpl, '\n')"> <xsl:element name="line"> <xsl:attribute name="no"> <xsl:value-of select="position()" /> </xsl:attribute> <xsl:for-each select="fn:tokenize(., '\W+')"> <xsl:element name="word"> <xsl:value-of select="fn:lower-case(.)" /> </xsl:element> </xsl:for-each> </xsl:element> </xsl:for-each> </xsl:element> </xsl:variable> <xsl:template match="/" > <xsl:for-each select="fn:distinct-values($mid//word/text())"> <xsl:sort data-type="text" /> <xsl:variable name="t" as="xs:string" select="." /> <xsl:value-of select="." /> <xsl:text> ... </xsl:text> <xsl:value-of select="fn:string-join($mid//line[word=$t]/@no, ',')" /> <xsl:text>
</xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet>Rating0/0=0.00-0+
[ reply ]